Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.kernel > #52488

Bug#812928: udev: cdrom_id terminated by signal BUS

From Anatoly Pugachev <matorola@gmail.com>
Newsgroups linux.debian.bugs.dist, linux.debian.ports.sparc, linux.debian.kernel
Subject Bug#812928: udev: cdrom_id terminated by signal BUS
Date 2016-01-28 07:40 +0100
Message-ID <qVOpk-7Sk-23@gated-at.bofh.it> (permalink)
References <qVH4u-2ek-17@gated-at.bofh.it> <qVHeb-2ip-19@gated-at.bofh.it> <qVHHc-2KP-17@gated-at.bofh.it> <qVIMV-3vP-11@gated-at.bofh.it>
Organization linux.* mail to news gateway

Cross-posted to 3 groups.

Show all headers | View raw


[Multipart message — attachments visible in raw view] - view raw

On Thu, Jan 28, 2016 at 3:31 AM, Patrick Baggett <baggett.patrick@gmail.com>
wrote:
>
> On Wed, Jan 27, 2016 at 5:23 PM, Ben Hutchings <ben@decadent.org.uk>
wrote:
> > Control: tag -1 moreinfo
> >
> > On Wed, 2016-01-27 at 23:54 +0100, Marco d'Itri wrote:
> >> Control: reassign -1 src:linux
> >> Control: found -1 4.3.0-1
> >> Control: retitle -1 getauxval(AT_RANDOM) broken on sparc64
> >>
> >> On Jan 27, Anatoly Pugachev <matorola@gmail.com> wrote:
> >>
> >> > Program terminated with signal SIGUSR1, User defined signal 1.
> >> > #0  0x000001000001b9b8 in initialize_srand () at src/basic/random-
> >> > util.c:107
> >> > 107                     x ^= *(unsigned*) auxv;
> >> > (gdb) bt
> >> Looks like getauxval(AT_RANDOM) returns garbage on sparc64:
> >>
> >>         x = 0;
> >>         auxv = (void*) getauxval(AT_RANDOM);
> >>         if (auxv)
> >>                 x ^= *(unsigned*) auxv;
> >
> > There is no documented alignment guarantee for the AT_RANDOM bytes so I
> > think this caller is wrong to treat it as an array of unsigned int.
>
> Also, you can verify that from a debugger without changing the code,
> by printing the value of the pointer `auxv` and check if either of the
> lower two bits are set.
>
> > What happens if you change it to:
> >
> >         if (auxv)
> >                 memcpy(&x, auxv, sizeof(x));
> >


restored original cdrom_id.c (with initialize_srand() function call) and
recompiled with memcpy() and run:

mator@deb4g:~/systemd$ sudo ./cdrom_id -l /dev/vdiskb
ID_CDROM=1

there's no SIGBUS. And I don't know what it should output. Probably fixed.
Thanks.

Back to linux.debian.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Bug#812928: udev: cdrom_id terminated by signal BUS md@Linux.IT (Marco d'Itri) - 2016-01-28 00:00 +0100
  Processed: Re: Bug#812928: udev: cdrom_id terminated by signal BUS owner@bugs.debian.org (Debian Bug Tracking System) - 2016-01-28 00:20 +0100
  Bug#812928: udev: cdrom_id terminated by signal BUS Ben Hutchings <ben@decadent.org.uk> - 2016-01-28 00:30 +0100
    Processed: Re: Bug#812928: udev: cdrom_id terminated by signal BUS owner@bugs.debian.org (Debian Bug Tracking System) - 2016-01-28 00:50 +0100
    Bug#812928: udev: cdrom_id terminated by signal BUS Patrick Baggett <baggett.patrick@gmail.com> - 2016-01-28 01:40 +0100
      Bug#812928: udev: cdrom_id terminated by signal BUS Anatoly Pugachev <matorola@gmail.com> - 2016-01-28 07:40 +0100
        Bug#812928: udev: cdrom_id terminated by signal BUS John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> - 2016-01-28 10:10 +0100
          Processed: Re: Bug#812928: udev: cdrom_id terminated by signal BUS owner@bugs.debian.org (Debian Bug Tracking System) - 2016-01-28 10:20 +0100

csiph-web