Kaynağa Gözat

=fix segfault on malloc of server_expect for multibyte chars (David Croft)

git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@796 f882894a-f735-0410-b71e-b25c423dba1c
Karl DeBisschop 22 yıl önce
ebeveyn
işleme
9b5b447fca
1 değiştirilmiş dosya ile 5 ekleme ve 5 silme
  1. 5 5
      plugins/check_tcp.c

+ 5 - 5
plugins/check_tcp.c

@@ -189,9 +189,9 @@ main (int argc, char **argv)
 		SERVICE = strdup ("NNTP");
 		SEND = NULL;
 		EXPECT = NULL;
-		server_expect = realloc (server_expect, ++server_expect_count);
+		server_expect = realloc (server_expect, sizeof (char *) * (++server_expect_count));
 		asprintf (&server_expect[server_expect_count - 1], "200");
-		server_expect = realloc (server_expect, ++server_expect_count);
+		server_expect = realloc (server_expect, sizeof (char *) * (++server_expect_count));
 		asprintf (&server_expect[server_expect_count - 1], "201");
 		asprintf (&QUIT, "QUIT\r\n");
 		PROTOCOL = TCP_PROTOCOL;
@@ -212,7 +212,7 @@ main (int argc, char **argv)
 
 	/* use default expect if none listed in process_arguments() */
 	if (EXPECT && server_expect_count == 0) {
-		server_expect = malloc (++server_expect_count);
+		server_expect = malloc (sizeof (char *) * (++server_expect_count));
 		server_expect[server_expect_count - 1] = EXPECT;
 	}
 
@@ -470,9 +470,9 @@ process_arguments (int argc, char **argv)
 		case 'e': /* expect string (may be repeated) */
 			EXPECT = NULL;
 			if (server_expect_count == 0)
-				server_expect = malloc (++server_expect_count);
+				server_expect = malloc (sizeof (char *) * (++server_expect_count));
 			else
-				server_expect = realloc (server_expect, ++server_expect_count);
+				server_expect = realloc (server_expect, sizeof (char *) * (++server_expect_count));
 			server_expect[server_expect_count - 1] = optarg;
 			break;
 		case 'm':