[devel] Re: RPM::Database

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Ср Окт 19 21:46:29 MSD 2005


On Wed, Oct 19, 2005 at 09:17:25PM +0400, Dmitry V. Levin wrote:
> alt51$ ./rttest-alt52 
> ./rttest-alt52: Symbol `rpmTagTable' has different size in shared object, consider re-linking
> rpmTagTableSize = 125
> rpmTagTable = 0x16b8e4
> Segmentation fault
  ^^^
В этой ситуации вот что происходит:

#0  0x400d73ef in strlen () from /usr/lib/debug/libc.so.6
#1  0x400ae405 in _IO_vfprintf (s=0x4017c7e0,
    format=0x544d5052 <Address 0x544d5052 out of bounds>, ap=0xbffff1dc "ы\204\004\bфї\027@@ў")
    at vfprintf.c:1468
#2  0x400b496f in *__GI_fprintf (stream=0x544d5052,
    format=0x544d5052 <Address 0x544d5052 out of bounds>) at fprintf.c:32
#3  0x080484d4 in main () at test.c:6

(gdb) frame 3
#3  0x080484d4 in main () at test.c:6
6               fprintf(stdout, "tag0: %s$\n", tag0);
(gdb) p tag0
$1 = 0x544d5052 <Address 0x544d5052 out of bounds>
(gdb) p rpmTagTable
$2 = (const struct headerTagTableEntry_s *) 0x4006e8e4
(gdb) p rpmTagTable[0]
$3 = {name = 0x544d5052 <Address 0x544d5052 out of bounds>, val = 1214203713}

Такое впечатление, что происходит неправильный dereferencing, то есть
rpmTagTable в качестве указателя уже смотрит непойми куда.  Я озадачен. :)
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20051019/d67dd0d2/attachment-0001.bin>


Подробная информация о списке рассылки Devel