* Re: [devel] [SCM] packages/gnupg2: heads/master @ 2009-07-14 10:54 ` Dmitry V. Levin 2009-07-14 14:56 ` Sergey V Turchin 2009-07-14 17:37 ` Vladimir Lettiev 0 siblings, 2 replies; 12+ messages in thread From: Dmitry V. Levin @ 2009-07-14 10:54 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 1303 bytes --] On Tue, Jul 14, 2009 at 01:46:56PM +0400, Sergey V. Turchin wrote: > Update of /people/zerg/packages/gnupg2.git > > Changes statistics since `2.0.12-alt1' follows: > gnupg-2.0.12-alt-fix-possible-overflow.patch | 11 +++++++++++ > gnupg2.spec | 7 ++++++- > 2 files changed, 17 insertions(+), 1 deletions(-) > > Changelog since `2.0.12-alt1' follows: > commit 54b3fff69fb0b00c12199b36fad930376a505fcc > Author: Sergey V Turchin <zerg@altlinux.org> > Date: Tue Jul 14 13:46:18 2009 +0400 > > - fix 'always overflow' glibc check error > > Full diff since `2.0.12-alt1' follows: > diff --git a/gnupg-2.0.12-alt-fix-possible-overflow.patch b/gnupg-2.0.12-alt-fix-possible-overflow.patch > new file mode 100644 > index 0000000..6098b91 > --- /dev/null > +++ b/gnupg-2.0.12-alt-fix-possible-overflow.patch > @@ -0,0 +1,11 @@ > +--- gnupg-2.0.12/g10/keygen.c~ 2009-07-13 17:27:14 +0400 > ++++ gnupg-2.0.12/g10/keygen.c 2009-07-14 13:33:08 +0400 > +@@ -85,7 +85,7 @@ struct para_data_s { > + u32 creation; > + unsigned int usage; > + struct revocation_key revkey; > +- char value[1]; > ++ char value[21]; > + } u; > + }; > + После этого изменения gnupg2 начнёт падать. -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [devel] [SCM] packages/gnupg2: heads/master 2009-07-14 10:54 ` [devel] [SCM] packages/gnupg2: heads/master Dmitry V. Levin @ 2009-07-14 14:56 ` Sergey V Turchin 2009-07-14 10:57 ` Dmitry V. Levin 2009-07-14 17:37 ` Vladimir Lettiev 1 sibling, 1 reply; 12+ messages in thread From: Sergey V Turchin @ 2009-07-14 14:56 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 635 bytes --] On Tuesday 14 July 2009, Dmitry V. Levin wrote: [...] > > +--- gnupg-2.0.12/g10/keygen.c~ 2009-07-13 17:27:14 +0400 > > ++++ gnupg-2.0.12/g10/keygen.c 2009-07-14 13:33:08 +0400 > > +@@ -85,7 +85,7 @@ struct para_data_s { > > + u32 creation; > > + unsigned int usage; > > + struct revocation_key revkey; > > +- char value[1]; > > ++ char value[21]; > > + } u; > > + }; > > + > > После этого изменения gnupg2 начнёт падать. Может кто-нибудь помочь? -- Regards, Sergey, ALT Linux Team, http://www.altlinux.ru http://stinkfoot.org:11371/pks/lookup?op=get&search=0x1C2A3F08 [-- Attachment #2: This is a digitally signed message part. --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [devel] [SCM] packages/gnupg2: heads/master 2009-07-14 14:56 ` Sergey V Turchin @ 2009-07-14 10:57 ` Dmitry V. Levin 2009-07-14 15:07 ` Sergey V Turchin 0 siblings, 1 reply; 12+ messages in thread From: Dmitry V. Levin @ 2009-07-14 10:57 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 711 bytes --] On Tue, Jul 14, 2009 at 02:56:30PM +0000, Sergey V Turchin wrote: > On Tuesday 14 July 2009, Dmitry V. Levin wrote: > > [...] > > > +--- gnupg-2.0.12/g10/keygen.c~ 2009-07-13 17:27:14 +0400 > > > ++++ gnupg-2.0.12/g10/keygen.c 2009-07-14 13:33:08 +0400 > > > +@@ -85,7 +85,7 @@ struct para_data_s { > > > + u32 creation; > > > + unsigned int usage; > > > + struct revocation_key revkey; > > > +- char value[1]; > > > ++ char value[21]; > > > + } u; > > > + }; > > > + > > > > После этого изменения gnupg2 начнёт падать. > Может кто-нибудь помочь? У меня в gnupg1 тот же самый код. Я напишу авторам, пусть они что-нибудь посоветуют. -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [devel] [SCM] packages/gnupg2: heads/master 2009-07-14 10:57 ` Dmitry V. Levin @ 2009-07-14 15:07 ` Sergey V Turchin 0 siblings, 0 replies; 12+ messages in thread From: Sergey V Turchin @ 2009-07-14 15:07 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 285 bytes --] On Tuesday 14 July 2009, Dmitry V. Levin wrote: [...] > У меня в gnupg1 тот же самый код. > Я напишу авторам, пусть они что-нибудь посоветуют. Заранее спасибо! -- Regards, Sergey, ALT Linux Team, http://www.altlinux.ru http://stinkfoot.org:11371/pks/lookup?op=get&search=0x1C2A3F08 [-- Attachment #2: This is a digitally signed message part. --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [devel] [SCM] packages/gnupg2: heads/master 2009-07-14 10:54 ` [devel] [SCM] packages/gnupg2: heads/master Dmitry V. Levin 2009-07-14 14:56 ` Sergey V Turchin @ 2009-07-14 17:37 ` Vladimir Lettiev 2009-07-14 18:29 ` Ivan A. Melnikov 2009-07-14 22:51 ` Dmitry V. Levin 1 sibling, 2 replies; 12+ messages in thread From: Vladimir Lettiev @ 2009-07-14 17:37 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 1486 bytes --] On Tue, Jul 14, 2009 at 02:54:16PM +0400, Dmitry V. Levin wrote: > On Tue, Jul 14, 2009 at 01:46:56PM +0400, Sergey V. Turchin wrote: > > --- /dev/null > > +++ b/gnupg-2.0.12-alt-fix-possible-overflow.patch > > @@ -0,0 +1,11 @@ > > +--- gnupg-2.0.12/g10/keygen.c~ 2009-07-13 17:27:14 +0400 > > ++++ gnupg-2.0.12/g10/keygen.c 2009-07-14 13:33:08 +0400 > > +@@ -85,7 +85,7 @@ struct para_data_s { > > + u32 creation; > > + unsigned int usage; > > + struct revocation_key revkey; > > +- char value[1]; ^^^^^^^^^^^^^ > > ++ char value[21]; > > + } u; > > + }; > > + > > После этого изменения gnupg2 начнёт падать. Как я понимаю, это очень популярный приём для создания поля переменной длины в структуре. Память выделяется как сумма sizeof(структура)+strlen(данные), а потом в поле, которое объявлено размером в один байт загоняются данные большей длины и это срабатывает т.к. памяти выделенно достаточно, хотя с точки зрения компилятора будет переполнение. Как теперь быть? Какой правильный путь решения такой задачи? -- Vladimir Lettiev aka crux [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [devel] [SCM] packages/gnupg2: heads/master 2009-07-14 17:37 ` Vladimir Lettiev @ 2009-07-14 18:29 ` Ivan A. Melnikov 2009-07-14 18:34 ` Led 2009-07-14 22:51 ` Dmitry V. Levin 1 sibling, 1 reply; 12+ messages in thread From: Ivan A. Melnikov @ 2009-07-14 18:29 UTC (permalink / raw) To: devel В Tue, 14 Jul 2009 21:37:34 +0400 Vladimir Lettiev <thecrux@gmail.com> пишет: > On Tue, Jul 14, 2009 at 02:54:16PM +0400, Dmitry V. Levin wrote: > > On Tue, Jul 14, 2009 at 01:46:56PM +0400, Sergey V. Turchin wrote: > > > --- /dev/null > > > +++ b/gnupg-2.0.12-alt-fix-possible-overflow.patch > > > @@ -0,0 +1,11 @@ > > > +--- gnupg-2.0.12/g10/keygen.c~ 2009-07-13 17:27:14 +0400 > > > ++++ gnupg-2.0.12/g10/keygen.c 2009-07-14 13:33:08 +0400 > > > +@@ -85,7 +85,7 @@ struct para_data_s { > > > + u32 creation; > > > + unsigned int usage; > > > + struct revocation_key revkey; > > > +- char value[1]; > ^^^^^^^^^^^^^ > > > ++ char value[21]; > > > + } u; > > > + }; > > > + > > > > После этого изменения gnupg2 начнёт падать. > > Как я понимаю, это очень популярный приём для создания поля > переменной длины в структуре. Память выделяется как сумма > sizeof(структура)+strlen(данные), а потом в поле, которое объявлено > размером в один байт загоняются данные большей длины и это > срабатывает т.к. памяти выделенно достаточно, хотя с точки зрения > компилятора будет переполнение. > > Как теперь быть? Какой правильный путь решения такой задачи? > Возможно, массив нулевой длины, с #if по поводу версии gcc. http://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html -- WBR, Ivan A. Melnikov ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [devel] [SCM] packages/gnupg2: heads/master 2009-07-14 18:29 ` Ivan A. Melnikov @ 2009-07-14 18:34 ` Led 0 siblings, 0 replies; 12+ messages in thread From: Led @ 2009-07-14 18:34 UTC (permalink / raw) To: ALT Linux Team development discussions On Tuesday 14 July 2009 21:29:59 Ivan A. Melnikov wrote: > В Tue, 14 Jul 2009 21:37:34 +0400 > > Vladimir Lettiev <thecrux@gmail.com> пишет: > > On Tue, Jul 14, 2009 at 02:54:16PM +0400, Dmitry V. Levin wrote: > > > On Tue, Jul 14, 2009 at 01:46:56PM +0400, Sergey V. Turchin wrote: > > > > --- /dev/null > > > > +++ b/gnupg-2.0.12-alt-fix-possible-overflow.patch > > > > @@ -0,0 +1,11 @@ > > > > +--- gnupg-2.0.12/g10/keygen.c~ 2009-07-13 17:27:14 +0400 > > > > ++++ gnupg-2.0.12/g10/keygen.c 2009-07-14 13:33:08 +0400 > > > > +@@ -85,7 +85,7 @@ struct para_data_s { > > > > + u32 creation; > > > > + unsigned int usage; > > > > + struct revocation_key revkey; > > > > +- char value[1]; > > > > ^^^^^^^^^^^^^ > > > > > > ++ char value[21]; > > > > + } u; > > > > + }; > > > > + > > > > > > После этого изменения gnupg2 начнёт падать. > > > > Как я понимаю, это очень популярный приём для создания поля > > переменной длины в структуре. Память выделяется как сумма > > sizeof(структура)+strlen(данные), а потом в поле, которое объявлено > > размером в один байт загоняются данные большей длины и это > > срабатывает т.к. памяти выделенно достаточно, хотя с точки зрения > > компилятора будет переполнение. > > > > Как теперь быть? Какой правильный путь решения такой задачи? > > Возможно, массив нулевой длины, с #if по поводу версии gcc. > > http://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html ИМХО объявлять массив заранее зная, что он будет испорльзоваться только как указатель - тупо. Или КРИВАЯ попытка обойти неудобство языка. -- Led ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [devel] [SCM] packages/gnupg2: heads/master 2009-07-14 17:37 ` Vladimir Lettiev 2009-07-14 18:29 ` Ivan A. Melnikov @ 2009-07-14 22:51 ` Dmitry V. Levin 2009-08-18 22:47 ` Dmitry V. Levin 1 sibling, 1 reply; 12+ messages in thread From: Dmitry V. Levin @ 2009-07-14 22:51 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 1670 bytes --] On Tue, Jul 14, 2009 at 09:37:34PM +0400, Vladimir Lettiev wrote: > On Tue, Jul 14, 2009 at 02:54:16PM +0400, Dmitry V. Levin wrote: > > On Tue, Jul 14, 2009 at 01:46:56PM +0400, Sergey V. Turchin wrote: > > > --- /dev/null > > > +++ b/gnupg-2.0.12-alt-fix-possible-overflow.patch > > > @@ -0,0 +1,11 @@ > > > +--- gnupg-2.0.12/g10/keygen.c~ 2009-07-13 17:27:14 +0400 > > > ++++ gnupg-2.0.12/g10/keygen.c 2009-07-14 13:33:08 +0400 > > > +@@ -85,7 +85,7 @@ struct para_data_s { > > > + u32 creation; > > > + unsigned int usage; > > > + struct revocation_key revkey; > > > +- char value[1]; > ^^^^^^^^^^^^^ > > > ++ char value[21]; > > > + } u; > > > + }; > > > + > > > > После этого изменения gnupg2 начнёт падать. > > Как я понимаю, это очень популярный приём для создания поля переменной длины в структуре. Насчёт того, что это очень популярный приём, я не уверен, но то что этот метод хорошо известен в узких кругах, это точно. > Память выделяется как сумма sizeof(структура)+strlen(данные), а потом в поле, которое > объявлено размером в один байт загоняются данные большей длины и это срабатывает т.к. > памяти выделенно достаточно, хотя с точки зрения компилятора будет переполнение. > > Как теперь быть? Какой правильный путь решения такой задачи? Задача в описанной вами форме (поле переменной длины в конце структуры) решается с помощью массива переменной длины (flexible array member). Но в gnupg/g10/keygen.c поле переменной длины помещено в union, который помещён в структуру, а стандарт С не позволяет помещать flexible array member в union. -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [devel] [SCM] packages/gnupg2: heads/master 2009-07-14 22:51 ` Dmitry V. Levin @ 2009-08-18 22:47 ` Dmitry V. Levin 2009-08-18 22:51 ` Dmitry V. Levin 2009-08-19 9:17 ` Michael Shigorin 0 siblings, 2 replies; 12+ messages in thread From: Dmitry V. Levin @ 2009-08-18 22:47 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 2007 bytes --] On Wed, Jul 15, 2009 at 02:51:19AM +0400, Dmitry V. Levin wrote: > On Tue, Jul 14, 2009 at 09:37:34PM +0400, Vladimir Lettiev wrote: > > On Tue, Jul 14, 2009 at 02:54:16PM +0400, Dmitry V. Levin wrote: > > > On Tue, Jul 14, 2009 at 01:46:56PM +0400, Sergey V. Turchin wrote: > > > > --- /dev/null > > > > +++ b/gnupg-2.0.12-alt-fix-possible-overflow.patch > > > > @@ -0,0 +1,11 @@ > > > > +--- gnupg-2.0.12/g10/keygen.c~ 2009-07-13 17:27:14 +0400 > > > > ++++ gnupg-2.0.12/g10/keygen.c 2009-07-14 13:33:08 +0400 > > > > +@@ -85,7 +85,7 @@ struct para_data_s { > > > > + u32 creation; > > > > + unsigned int usage; > > > > + struct revocation_key revkey; > > > > +- char value[1]; > > ^^^^^^^^^^^^^ > > > > ++ char value[21]; > > > > + } u; > > > > + }; > > > > + > > > > > > После этого изменения gnupg2 начнёт падать. > > > > Как я понимаю, это очень популярный приём для создания поля переменной длины в структуре. > > Насчёт того, что это очень популярный приём, я не уверен, но то что этот > метод хорошо известен в узких кругах, это точно. > > > Память выделяется как сумма sizeof(структура)+strlen(данные), а потом в поле, которое > > объявлено размером в один байт загоняются данные большей длины и это срабатывает т.к. > > памяти выделенно достаточно, хотя с точки зрения компилятора будет переполнение. > > > > Как теперь быть? Какой правильный путь решения такой задачи? > > Задача в описанной вами форме (поле переменной длины в конце структуры) > решается с помощью массива переменной длины (flexible array member). > > Но в gnupg/g10/keygen.c поле переменной длины помещено в union, который > помещён в структуру, а стандарт С не позволяет помещать flexible array > member в union. Apparently gcc upstream has changed his mind wrt this issue, see http://gcc.gnu.org/ml/gcc-patches/2009-07/msg01136.html gcc4.4-4.4.1-alt1 with this change was built for Sisyphus tonight. -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [devel] [SCM] packages/gnupg2: heads/master 2009-08-18 22:47 ` Dmitry V. Levin @ 2009-08-18 22:51 ` Dmitry V. Levin 2009-08-19 9:17 ` Michael Shigorin 1 sibling, 0 replies; 12+ messages in thread From: Dmitry V. Levin @ 2009-08-18 22:51 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 176 bytes --] On Wed, Aug 19, 2009 at 02:47:00AM +0400, Dmitry V. Levin wrote: > gcc4.4-4.4.1-alt1 with this change was built for Sisyphus tonight. s/tonight/yesternight/ -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [devel] [SCM] packages/gnupg2: heads/master 2009-08-18 22:47 ` Dmitry V. Levin 2009-08-18 22:51 ` Dmitry V. Levin @ 2009-08-19 9:17 ` Michael Shigorin 2009-08-19 12:49 ` Dmitry V. Levin 1 sibling, 1 reply; 12+ messages in thread From: Michael Shigorin @ 2009-08-19 9:17 UTC (permalink / raw) To: ALT Linux Team development discussions On Wed, Aug 19, 2009 at 02:47:00AM +0400, Dmitry V. Levin wrote: > > Но в gnupg/g10/keygen.c поле переменной длины помещено в > > union, который помещён в структуру, а стандарт С не позволяет > > помещать flexible array member в union. > Apparently gcc upstream has changed his mind wrt this issue, see > http://gcc.gnu.org/ml/gcc-patches/2009-07/msg01136.html > gcc4.4-4.4.1-alt1 with this change was built for Sisyphus tonight. Так что, openmotif тоже ещё поживёт? :) (в Debian и Fedora его выкинули в пользу lesstif и небольшой стопки патчей, в openSUSE и PLD вроде пока есть) -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [devel] [SCM] packages/gnupg2: heads/master 2009-08-19 9:17 ` Michael Shigorin @ 2009-08-19 12:49 ` Dmitry V. Levin 0 siblings, 0 replies; 12+ messages in thread From: Dmitry V. Levin @ 2009-08-19 12:49 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 604 bytes --] On Wed, Aug 19, 2009 at 12:17:40PM +0300, Michael Shigorin wrote: > On Wed, Aug 19, 2009 at 02:47:00AM +0400, Dmitry V. Levin wrote: > > > Но в gnupg/g10/keygen.c поле переменной длины помещено в > > > union, который помещён в структуру, а стандарт С не позволяет > > > помещать flexible array member в union. > > Apparently gcc upstream has changed his mind wrt this issue, see > > http://gcc.gnu.org/ml/gcc-patches/2009-07/msg01136.html > > gcc4.4-4.4.1-alt1 with this change was built for Sisyphus tonight. > > Так что, openmotif тоже ещё поживёт? :) Ещё побарахтается. :) -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2009-08-19 12:49 UTC | newest] Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2009-07-14 10:54 ` [devel] [SCM] packages/gnupg2: heads/master Dmitry V. Levin 2009-07-14 14:56 ` Sergey V Turchin 2009-07-14 10:57 ` Dmitry V. Levin 2009-07-14 15:07 ` Sergey V Turchin 2009-07-14 17:37 ` Vladimir Lettiev 2009-07-14 18:29 ` Ivan A. Melnikov 2009-07-14 18:34 ` Led 2009-07-14 22:51 ` Dmitry V. Levin 2009-08-18 22:47 ` Dmitry V. Levin 2009-08-18 22:51 ` Dmitry V. Levin 2009-08-19 9:17 ` Michael Shigorin 2009-08-19 12:49 ` Dmitry V. Levin
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git