Bug 20831 - stack smashing detected при эспорте блобов из базы
Summary: stack smashing detected при эспорте блобов из базы
Status: CLOSED WONTFIX
Alias: None
Product: Branch 4.1
Classification: Distributions
Component: libpx (show other bugs)
Version: unspecified
Hardware: all Linux
: P3 critical
Assignee: Nobody's working on this, feel free to take it
QA Contact: qa-4.1@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-07-20 10:01 MSD by Владимир Кутявин
Modified: 2014-11-05 20:42 MSK (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Владимир Кутявин 2009-07-20 10:01:15 MSD
Попытка достать блобы из базы paradox в отдельные файлы с помощью pxview:
$ pxview -v --blobextension=jpg -b Personel.MB Personel.db
datablock position = 2048
. . . . .
datablock position = 1902592
*** stack smashing detected ***: pxview terminated
Аварийный останов

При экспорте без указания расширения или импорте в mysql то же самое. Без блобов в mysql импортируется, лишь ругается после каждой записи:
Couldn't get blob data for 1 (2, 3...)

Вывод с valgrind:

$valgrind -v pxview Personel.db -b Personel.MB
datablock position = 1886208
datablock position = 2738176
datablock position = 1902592
*** stack smashing detected ***: pxview terminated
==25275==
==25275== Process terminating with default action of signal 6 (SIGABRT)
==25275==    at 0x4129EB6: raise (in /lib/libc-2.5.1.so)
==25275==    by 0x412B660: abort (in /lib/libc-2.5.1.so)
==25275==    by 0x415F52A: (within /lib/libc-2.5.1.so)
==25275==    by 0x41D1D13: __stack_chk_fail (in /lib/libc-2.5.1.so)
==25275==    by 0x4053D83: (within /usr/lib/libpx.so.0.6.3)
==25275==    by 0x404867F: PX_open_blob_fp (in /usr/lib/libpx.so.0.6.3)
==25275==    by 0x404894E: PX_open_blob_file (in /usr/lib/libpx.so.0.6.3)
==25275==    by 0x804BD00: (within /usr/bin/pxview)
==25275==    by 0x41180EB: (below main) (in /lib/libc-2.5.1.so)
==25275==
==25275== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 37 from 1)
--25275--
--25275-- supp:   37 dl-hack3
==25275== malloc/free: in use at exit: 365,392 bytes in 84 blocks.
==25275== malloc/free: 536 allocs, 452 frees, 381,890 bytes allocated.
==25275==
==25275== searching for pointers to 84 not-freed blocks.
==25275== checked 568,628 bytes.
==25275==
==25275== LEAK SUMMARY:
==25275==    definitely lost: 0 bytes in 0 blocks.
==25275==      possibly lost: 0 bytes in 0 blocks.
==25275==    still reachable: 365,392 bytes in 84 blocks.
==25275==         suppressed: 0 bytes in 0 blocks.
==25275== Rerun with --leak-check=full to see details of leaked memory.
--25275--  memcheck: sanity checks: 44 cheap, 2 expensive
--25275--  memcheck: auxmaps: 0 auxmap entries (0k, 0M) in use
--25275--  memcheck: auxmaps: 0 searches, 0 comparisons
--25275--  memcheck: SMs: n_issued      = 29 (464k, 0M)
--25275--  memcheck: SMs: n_deissued    = 0 (0k, 0M)
--25275--  memcheck: SMs: max_noaccess  = 65535 (1048560k, 1023M)
--25275--  memcheck: SMs: max_undefined = 4 (64k, 0M)
--25275--  memcheck: SMs: max_defined   = 80 (1280k, 1M)
--25275--  memcheck: SMs: max_non_DSM   = 29 (464k, 0M)
--25275--  memcheck: max sec V bit nodes:    0 (0k, 0M)
--25275--  memcheck: set_sec_vbits8 calls: 0 (new: 0, updates: 0)
--25275--  memcheck: max shadow mem size:   768k, 0M
--25275-- translate:            fast SP updates identified: 3,485 ( 90.1%)
--25275-- translate:   generic_known SP updates identified: 199 (  5.1%)
--25275-- translate: generic_unknown SP updates identified: 183 (  4.7%)
--25275--     tt/tc: 8,697 tt lookups requiring 8,843 probes
--25275--     tt/tc: 8,697 fast-cache updates, 3 flushes
--25275--  transtab: new        3,300 (68,244 -> 1,141,180; ratio 167:10) [0 scs]
--25275--  transtab: dumped     0 (0 -> ??)
--25275--  transtab: discarded  6 (164 -> ??)
--25275-- scheduler: 4,488,266 jumps (bb entries).
--25275-- scheduler: 44/50,827 major/minor sched events.
--25275--    sanity: 45 cheap, 2 expensive checks.
--25275--    exectx: 30,011 lists, 132 contexts (avg 0 per list)
--25275--    exectx: 1,025 searches, 893 full compares (871 per 1000)
--25275--    exectx: 0 cmp2, 91 cmp4, 0 cmpAll
Аварийный останов 

К сожалению, файл приложить не могу. Но он, вероятно, цел, с ним успешно работает виндовая СУБД.
Comment 1 Vitaly Lipatov 2009-07-20 22:58:23 MSD
Имеет смысл тестировать только сборку из Сизифа:
pxview-0.2.5-alt2
libpx-0.6.4

По поводу файла - если ошибка именно в блобах, вы наверное можете и создать файл специально для проверки.
Comment 2 Владимир Кутявин 2009-07-21 09:45:19 MSD
(В ответ на комментарий №1)
> Имеет смысл тестировать только сборку из Сизифа:
> pxview-0.2.5-alt2
> libpx-0.6.4

На момент получения проблемы, в сизифе были версии pxview-0.2.5-alt1 и libpx-0.6.3-alt2, пробовал с ними. А с новыми мне тяжеловато, в зависимостях glibc. Попробуете?

> По поводу файла - если ошибка именно в блобах, вы наверное можете и создать
> файл специально для проверки.

Нашел другой файл, содержащий блобы, при его обработке возникает аналогичная ошибка, прикладываю.
Перевесить на Сизиф?
Comment 3 Владимир Кутявин 2009-07-21 10:12:35 MSD
Файл приложить не получается, доступен по ссылке http://file.azdream.ru/wt_pxb.tar.gz
Comment 4 Vitaly Lipatov 2009-07-22 00:20:55 MSD
Ошибка возникает после вызова
build_mb_block_list(pxblob);
в функции
PX_open_blob_fp(pxblob_t *pxblob, FILE *fp) {
но отлаживать мне некогда.
Это библиотека libpx
Comment 5 Владимир Кутявин 2009-07-22 13:50:49 MSD
(В ответ на комментарий №4)
> Ошибка возникает после вызова
> build_mb_block_list(pxblob);
> в функции
> PX_open_blob_fp(pxblob_t *pxblob, FILE *fp) {
> Это библиотека libpx

Мистика, но собрал на домашнем компьютере (Не Альт) с теми же опциями сборки, работает гладко. Пересобирал в hasher в альте - та же ошибка.. Беда, конечно, что Вам некогда, но пакет нужен, буду думать сам.
Кстати, у Вас машина времени? Последний pxlib на официальном сайте версии 0.6.3 :)
Comment 6 Vitaly Lipatov 2009-07-23 01:22:58 MSD
(В ответ на комментарий №5)
> (В ответ на комментарий №4)
> > Ошибка возникает после вызова
> > build_mb_block_list(pxblob);
> > в функции
> > PX_open_blob_fp(pxblob_t *pxblob, FILE *fp) {
> > Это библиотека libpx
> 
> Мистика, но собрал на домашнем компьютере (Не Альт) с теми же опциями сборки,
> работает гладко. Пересобирал в hasher в альте - та же ошибка.. Беда, конечно,
> что Вам некогда, но пакет нужен, буду думать сам.
Это не мистика, просто в этой другой системе нет такой проверки на запорченность стека.

> Кстати, у Вас машина времени? Последний pxlib на официальном сайте версии 0.6.3
Ну небольшая машинка :) 
http://packages.debian.org/sid/pxlib-dev
Comment 7 Владимир Кутявин 2009-07-23 09:13:39 MSD
test
Comment 8 Michael Shigorin 2014-11-05 20:42:59 MSK
В 4.1/branch исправления не будут вноситься уже технически (заглушена очередь на сборку), поэтому прошу ошибки, актуальные для sisyphus/p7/t7, перевесить на текущие ветки или сизиф.