Просмотр исходного кода

check_tcp.c - Validate sent data size

my_send() and send() do not validate the amount sent, but only return -1 or bytes sent. Since we are sending via a single send command, all of the send string should be sent in a single command and should be checked against the sent amount. We could also just check for -1, however that is less accurate as the server would never see the rest of the string and may have unexpected results if the entirety is not sent.

coverity 103712
Spenser Reinhardt 11 лет назад
Родитель
Сommit
6f562246e2
1 измененных файлов с 2 добавлено и 2 удалено
  1. 2 2
      plugins/check_tcp.c

+ 2 - 2
plugins/check_tcp.c

@@ -253,8 +253,8 @@ main (int argc, char **argv)
 	}
 #endif /* HAVE_SSL */
 
-	if (server_send != NULL) {		/* Something to send? */
-		my_send(server_send, strlen(server_send));
+	if (server_send != NULL &&  strlen(server_send) > my_send(server_send, strlen(server_send))) {		/* Something to send? and validate return*/
+		die(STATE_UNKNOWN, "%s - %s", _("No data sent to host"), strerror(errno));
 	}
 
 	if (delay > 0) {