regresja: gcc? curl?
Patryk Zawadzki
patrys w pld-linux.org
Śro, 10 Paź 2007, 01:37:01 CEST
Jest sobie smart, który używa pycurl. Zdycha mi on o tak ładnie:
(gdb) backtrace
#0 *__GI___libc_free (mem=0x63656863) at malloc.c:3596
#1 0xb77a78fb in Curl_setopt (data=0x86e9040, option=CURLOPT_URL,
param=0xbfa5e228 "\2301Y\b<TUTAJ LOSOWE KRZAKI>") at url.c:1314
#2 0xb77b3090 in curl_easy_setopt (curl=0x6365685b, tag=CURLOPT_URL)
at easy.c:362
#3 0xb77f4110 in ?? () from /usr/lib/python2.5/site-packages/pycurl.so
#4 0x086e9040 in ?? ()
#5 0x00002712 in do_share_new (dummy=0x8691584) at src/pycurl.c:588
#6 0xb7e47cdc in PyCFunction_Call (func=0x8175dac, arg=0x8304fec, kw=0x0)
at Objects/methodobject.c:73
#7 0xb7e901e7 in PyEval_EvalFrameEx (f=0x839f714, throwflag=0)
at Python/ceval.c:3564
Ciekawe rzeczy:
(gdb) up 1
#1 0xb77a78fb in Curl_setopt (data=0x86e9040, option=CURLOPT_URL,
param=0xbfa5e228 "\2301Y\b<TUTAJ LOSOWE KRZAKI>") at url.c:1314
1314 free(data->change.url);
(gdb) p data->change
$1 = {
url = 0x63656863 <Address 0x63656863 out of bounds>,
url_alloc = 107,
url_changed = 115,
referer = 0x20200a3e <Address 0x20200a3e out of bounds>,
referer_alloc = 32,
cookielist = 0x73656d69
}
(gdb) up 2
#3 0xb77c2130 in do_curl_setopt (self=0x83be074, args=0x87856ec)
at src/pycurl.c:1563
1563 res = curl_easy_setopt(self->handle, (CURLoption)option, buf);
(gdb) p buf
$2 = 0x84c7db0 "ftp://ftp.th.pld-linux.org/dists/th/test/i686/RPMS/repodata/primary.xml.gz"
Pola url_alloc i url_changed to wartości TRUE/FALSE, ani 107 ani 115
nie jest prawidłową wartością. Z pythona (pycurl) przekazane zostały
prawidłowe parametry (ramka #3).
Jakaś dziwna regresja? Jestem w stanie odtworzyć to za każdym razem.
Wygląda, jakby calloc nie zerował pamięci?
--
Patryk Zawadzki
Generated Content
Więcej informacji o liście dyskusyjnej pld-devel-pl