On Fri, Jul 22, 2005 at 10:28:10AM -0400, Anthony DeRobertis wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > In helpers.cpp, we find this code, which parses data returned from ebay: > > /* > * Parse the description out of the buffer first. This is > * most easily done at the buffer-level and not as we try > * to read the buffer in a line-oriented manner. There is > * probably a need to re-write this parser all together, > * but that's not what I'm going to do right now. > * Thanks to Bob Beaty! > */ > scratch = strstr(Buff, ") -"); > if (scratch != NULL) { > // move past the ") -" > scratch += 3; > // move past any whitespace > while (isspace(*scratch)) scratch++; > // copy over the description to a newline > idx = 0; > while (*scratch != '\n') { > Description[idx++] = *scratch++; > } > // NULL terminate the description I just parsed off > Description[idx] = '\0'; > } else { > return FALSE; > } > > Notice how it copies an abitrary amount of data, as much as ebay returns > before \n, into Description.
This should work for now. Index: helpers.cpp =================================================================== RCS file: /cvsroot/bidwatcher/bidwatcher/Attic/helpers.cpp,v retrieving revision 1.90.2.58 diff -u -r1.90.2.58 helpers.cpp --- helpers.cpp 15 May 2005 21:53:00 -0000 1.90.2.58 +++ helpers.cpp 23 Jul 2005 13:45:32 -0000 @@ -1043,7 +1043,7 @@ } } - int idx=0; + unsigned idx=0; int cnt; int ended_early=0; int auc_type=TYPE_EBAY; @@ -1086,7 +1086,7 @@ while (isspace(*scratch)) scratch++; // copy over the description to a newline idx = 0; - while (*scratch != '\n') { + while (*scratch != '\n' && idx < sizeof Description) { Description[idx++] = *scratch++; } // NULL terminate the description I just parsed off > The rest of this struct looks disturbing, too. Welcome to inheriting a large chunk of code written by people who aren't around anymore. ;-) I actually did go around a long while ago and fix a lot of these types of things, but that one didn't jump out at me. Thanks for bringing it up. -kpd -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]