Re: Frequently failing Sysmon ping tests...
Morgan Aldridge <[email protected]> Mon, 3 Aug 2009 12:41:30 -0400
| Newsgroups | gmane.comp.monitoring.sysmon.help |
|---|---|
| Message-ID | <[email protected]> |
On Mon, Aug 3, 2009 at 12:40 PM, Morgan Aldridge<[email protected]> wrote: > > Could it have anything to do with 'buffer' having a length of 1024? > None of the lines in the source of the page being requested appear to > have even 255 chars, let alone 1024, but I haven't looked at > getline_tcp() to see how it determines what one line is. To continue my thinking outloud... I took a peek at getline_tcp() in talktcp.c and have a question about the following part of it: strncat(buffer, &buf, 1); if (strlen(buffer) > 200) { return 0; } Shouldn't that conditional statement be something more like the following? if (strlen(buffer) >= sizeof(buffer)) I ask this because the buffer that service_test_www() (from http.c) sends to getline_tcp() is an array of 1024 characters, so isn't getline_tcp() returning if the length of the string stored in the buffer exceeds 200 characters, therefore only utilizing about 20% of the buffer? Granted, service_test_www() doesn't seem to check the length of buffer before sending it to print_err() and I didn't immediately see anything else in getline_tcp() that could cause the out-of-bounds read. Any other tips so I can get debugging working properly and try to find the main issue? Morgan Aldridge --- [email protected] http://www.makkintosshu.com/