From: <mik...@us...> - 2011-12-29 22:51:50
|
Revision: 1857 http://nagios.svn.sourceforge.net/nagios/?rev=1857&view=rev Author: mikelindsey Date: 2011-12-29 22:51:44 +0000 (Thu, 29 Dec 2011) Log Message: ----------- Bugfix for bus error on extra large input. Modified Paths: -------------- nsca/tags/nsca-2-9/Changelog nsca/tags/nsca-2-9/include/common.h nsca/tags/nsca-2-9/src/send_nsca.c Modified: nsca/tags/nsca-2-9/Changelog =================================================================== --- nsca/tags/nsca-2-9/Changelog 2011-12-16 15:18:22 UTC (rev 1856) +++ nsca/tags/nsca-2-9/Changelog 2011-12-29 22:51:44 UTC (rev 1857) @@ -2,6 +2,10 @@ NSCA Changelog ************** +2.9.1 12/29/2011 +---------------- +- Bugfix for bus error with extremely large plugin output + 2.9 - 11/04/2011 ---------------- - Add config directive to submit directly to checkresults directory (Mike Lindsey) Modified: nsca/tags/nsca-2-9/include/common.h =================================================================== --- nsca/tags/nsca-2-9/include/common.h 2011-12-16 15:18:22 UTC (rev 1856) +++ nsca/tags/nsca-2-9/include/common.h 2011-12-29 22:51:44 UTC (rev 1857) @@ -24,8 +24,8 @@ #include "config.h" -#define PROGRAM_VERSION "2.9" -#define MODIFICATION_DATE "10-31-2011" +#define PROGRAM_VERSION "2.9.1" +#define MODIFICATION_DATE "12-29-2011" #define OK 0 @@ -51,7 +51,7 @@ #define MAX_PASSWORD_LENGTH 512 -#define BLOCK_DELIMITER "\x17" +#define BLOCK_DELIMITER 0x17 /********************* ENCRYPTION TYPES ****************/ Modified: nsca/tags/nsca-2-9/src/send_nsca.c =================================================================== --- nsca/tags/nsca-2-9/src/send_nsca.c 2011-12-16 15:18:22 UTC (rev 1856) +++ nsca/tags/nsca-2-9/src/send_nsca.c 2011-12-29 22:51:44 UTC (rev 1857) @@ -27,7 +27,6 @@ char password[MAX_INPUT_BUFFER]=""; char config_file[MAX_INPUT_BUFFER]="send_nsca.cfg"; char delimiter[2]="\t"; -char block_delimiter[2]=BLOCK_DELIMITER; char received_iv[TRANSMITTED_IV_SIZE]; @@ -191,19 +190,18 @@ /* read all data from STDIN until there isn't anymore */ while(!feof(stdin)){ - int c = getc(stdin); - if (c == -1){ - break; - } + int c = 0; int pos = 0; - while (c != 23){ - if (c == -1){ // in case we don't terminate properly + while (c != 23 && c != BLOCK_DELIMITER) { + c = getc(stdin); + if (c == -1){ // in case we don't terminate properly // or are in single-input mode. break; } - input_buffer[pos] = c; - c = getc(stdin); - pos++; + if (pos < MAX_INPUT_BUFFER){ + input_buffer[pos] = c; + pos++; + } } input_buffer[pos] = 0; strip(input_buffer); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |