ALT Linux Team development discussions
 help / color / mirror / Atom feed
* 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 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: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 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