gui: linux: fix string buffer overflow
authorFerry Huberts <ferry.huberts@pelagic.nl>
Wed, 7 Nov 2012 16:17:22 +0000 (17:17 +0100)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Wed, 7 Nov 2012 16:21:12 +0000 (17:21 +0100)
Coverity:
CID 742358 (#1 of 1): Copy into fixed size buffer (STRING_OVERFLOW)
At (1): You might overrun the 255 byte fixed-size string "title" by
        copying the return value of "ip_to_string(union olsr_ip_addr *)"
        without checking the length.

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
gui/linux-gtk/src/interface.c

index 361e676..f162a08 100644 (file)
@@ -24,6 +24,7 @@
 #include "common.h"
 #include "interface.h"
 #include "pixmaps.h"
+#include <stdio.h>
 
 /* Global widgets */
 
@@ -1030,13 +1031,11 @@ set_net_info(gchar * info, int disp_button)
 {
   gchar title[255];
 
-  memset(&title[0], 0, 255);
+  memset(&title[0], 0, sizeof(title));
   gtk_label_set_text((GtkLabel *) info_label, info);
   gtk_label_set_text((GtkLabel *) net_label, "Connected");
 
-  strcat(title, olsrd_version);
-  strcat(title, " - ");
-  strcat(title, ip_to_string(&main_addr));
+  snprintf(&title[0], sizeof(title), "%s - %s", olsrd_version, ip_to_string(&main_addr));
 
   gtk_window_set_title(GTK_WINDOW(main_window), title);