I have added debug output to octstr_case_search() (see below) 
and got the following just before the crash

2003-11-06 17:50:48 [7] DEBUG: octstr_case_search: haystack check: "Accept: 
application/vnd.wap.wtls-ca-certificate, text/plain, text/x-vCard, text/x-vCalendar, 
application/vnd.wap.wmlc, application/vnd.wap.wmlscriptc, 
application/x-wap-prov.browser-settings, application/x-nokia.settings, 
application/vnd.wap.wtls-ca-certificate"
2003-11-06 17:50:48 [7] DEBUG: length: 261 : 261, 262 - 0
2003-11-06 17:50:48 [7] PANIC: gwlib/octstr.c:2165: seems_valid_real: Assertion 
`ostr->data[ostr->len] == '\0'' failed. (Called from 
gwlib/octstr.c:928:octstr_case_search.)


Don't understand how it is possible !!!!
Any ideas?

Igor

------
int octstr_case_search(Octstr *haystack, Octstr *needle, long pos)
{
    long i, j;
    int c1, c2;

    debug("gwlib.octstr", 0, "octstr_case_search: haystack check: \"%s\"", 
octstr_get_cstr(haystack));
    debug("gwlib.octsrt", 0, "length: %u : %u, %u - %u",
                                strlen(octstr_get_cstr(haystack)),
                                haystack->len,haystack->size,
                                (unsigned)haystack->data[haystack->len]);
    seems_valid(haystack);
    debug("gwlib.octstr", 0, "octstr_case_search: neddle check: \"%s\"", 
octstr_get_cstr(needle));
    seems_valid(needle);
    gw_assert(pos >= 0);

    /* Always "find" an empty string */
    if (needle->len == 0)
        return 0;

    for (i = pos; i <= haystack->len - needle->len; ++i) {
        for (j = 0; j < needle->len; ++j) {
            c1 = toupper(haystack->data[i + j]);
            c2 = toupper(needle->data[j]);
            if (c1 != c2)
                break;
        }
        if (j == needle->len)
            return i;
    }

    return -1;    
}

> -----Original Message-----
> From: Alexander Malysh [mailto:[EMAIL PROTECTED]
> Sent: Monday, November 03, 2003 11:32 PM
> To: Igor Ivoilov; [EMAIL PROTECTED]
> Subject: Re: PANIC: gwlib/octstr.c ...
> 
> 
> Hi Igor,
> 
> unfortunately I'm not a wap expert :( Your bug is known one 
> and was reported 
> already. The bug #95 was reopened again...
> 
> Thanks a lot for backtrace!
> 
> On Monday 03 November 2003 19:26, Igor Ivoilov wrote:
> > That gives
> >
> > #0  0x080bfb72 in gw_panic ()
> > #1  0x080c6c70 in seems_valid_real ()
> > #2  0x080c39a7 in octstr_case_search ()
> > #3  0x080bd806 in http_something_accepted ()
> > #4  0x080bd851 in http_type_accepted ()
> > #5  0x08051b3b in return_reply ()
> > #6  0x08051e62 in return_replies_thread ()
> > #7  0x080b635f in new_thread ()
> > #8  0x4009eb9c in pthread_start_thread (arg=0x43b7dbe0) at 
> manager.c:259
> >

Reply via email to