|
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
|