Another VirtualPath-type bug

Barry Bouwsma hostmaster at
Wed Jun 21 04:49:11 UTC 2000

This line...

    /* XXXXX seems b0rkened...  if (VirtualPathlen > 0) { */
    if ( (VirtualPathlen > 0) && (what != STbody) ) {
-->>    if ((path = (char *)HeaderFindMem(ARThandle->data, ARThandle->len, "path", sizeof("path") - 1)) == NULL) {
            SendIOv(".\r\n", 3);

...with a small number of selected articles, seems to consistently
result in a k0redump when the following line is reached somewhat
later in the k0de:

        virtualpath = NEW(char, VirtualPathlen + 1);
        sprintf(virtualpath, "!%s", VirtualPath);
-->>    if ((s = strstr(path, virtualpath)) != NULL) {

I'm puzzling over why.  I can't see anything that makes these
articles bomb and others not.

Avoiding this section of the k0de (with no virtual path set)
and as expected, things work fine.

Replacing the problem `path' in the last line with `xref' also
results in a crash on the same article.

I'm confused.
[05:31:58]news at{734}$

I think sleep is on the agenda.  Say, what is `path' supposed to
look like if I print it anyway?

More information about the inn-workers mailing list