Bladeren bron

read_packages( SSL ):
- buff_ptr[bytes_read] = 0 results in Invalid write of size 1
- tot_bytes was calculated wrongly (as rc=0 in last call of SSL_read)
(this created all kind of errors like "malloc(): invalid size (unsorted)",
"corrupted size vs. prev_size" or segfaults in printf of the message buffer)

Signed-off-by: Andreas Baumann <mail@andreasbaumann.cc>

Andreas Baumann 6 jaren geleden
bovenliggende
commit
09c5d40ad5
1 gewijzigde bestanden met toevoegingen van 1 en 4 verwijderingen
  1. 1 4
      src/check_nrpe.c

+ 1 - 4
src/check_nrpe.c

@@ -1594,10 +1594,9 @@ int read_packet(int sock, void *ssl_ptr, v2_packet ** v2_pkt, v3_packet ** v3_pk
 				break;
 			bytes_read += rc;
 			bytes_to_recv -= rc;
+			tot_bytes += rc;
 		}
 
-		buff_ptr[bytes_read] = 0;
-
 		if (rc < 0 || bytes_read != buffer_size) {
 			if (packet_ver >= NRPE_PACKET_VERSION_3) {
 				free(*v3_pkt);
@@ -1614,8 +1613,6 @@ int read_packet(int sock, void *ssl_ptr, v2_packet ** v2_pkt, v3_packet ** v3_pk
 				}
 			}
 			return -1;
-		} else {
-			tot_bytes += rc;
 		}
 	}
 #endif