From: Mij <mi...@ss...> - 2010-07-16 21:44:53
|
Very curious, I noticed the same possibility some weeks ago, and thought "that condition for strings of logs length must be so rare that it's more likely for me to introduce a bug in the code for handling it" -- and just threw the assert() in there. Noot! :) Now committed a version for handling it as r204, thanks! On Jul 8, 2010, at 14:46 , Colin Keith wrote: > Hi, > > I keep having intermittent problems with the assert in this code from > sshguard-1.5rc3/src/sshguard_logsuck.c > > 351 /* read until error, newline reached, or buffer exhausted */ > 352 i = 0; > 353 do { > 354 ret = read(fd, & buf[i++], 1); > 355 } while (ret == 1 && buf[i-1] != '\n' && i < buflen-2); > 356 assert(ret != 0); > 357 buf[i] = '\0'; > > I keep getting the error message; > > Assertion `ret != 0' failed. > > I added some code to print the various values that are used: > > if(ret == 0) { > sshguard_log(LOG_NOTICE, "ret = %d, i = %d, buflen = %d, buf[i-1] = > '%c', buf = %s\n", ret, i, (int)buflen, buf[i-1], buf); > } > > and from that received this output; > > ret = 0, i = 62, buflen = 999, buf[i-1] = 'n', buf = ul 07 16:45:26 > thor.hagenhosting.com proftpd[18688] thor.hagenhosting.com > (61.55.146.28[61.55.146.28]): FTP session closed. > > > Why is ret == 0 bad? Doesn't that just me EOF? > > I'm reading from /var/log/ftp.log which is written to by syslog (it is > just easier that way) so isn't this just saying that syslog hadn't > finished writing the entire line to the log file while I was reading > it and thus hit the EOF before the EOL? > > This is really annoying because when it happens sshguard falls over > and so leaves the box open to annoyances again. > > Thanks, > Colin. > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > _______________________________________________ > Sshguard-users mailing list > Ssh...@li... > https://lists.sourceforge.net/lists/listinfo/sshguard-users |