lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Wed, 25 Jul 2007 18:07:31 +0530
From:	"Satyam Sharma" <satyam.sharma@...il.com>
To:	"Andrew Morton" <akpm@...ux-foundation.org>
Cc:	"Joshua Wise" <jwise@...gle.com>, linux-kernel@...r.kernel.org,
	"Tim Hockin" <thockin@...gle.com>,
	"Mike Waychison" <mikew@...gle.com>,
	"Masoud Asgharifard Sharbiani" <masouds@...gle.com>
Subject: Re: [PATCH] Print utsname on Oops on all architectures

On 7/25/07, Andrew Morton <akpm@...ux-foundation.org> wrote:
> On Thu, 5 Jul 2007 18:52:27 -0700 (PDT) Joshua Wise <jwise@...gle.com> wrote:
>
> > Background:
> >  This patch is a follow-on to "Info dump on Oops or panic()" [1].
> >
> >  On some architectures, the kernel printed some information on the running
> >  kernel, but not on all architectures. The information printed was generally
> >  the version and build number, but it was not located in a consistant place,
> >  and some architectures did not print it at all.
> >
> > Description:
> >  This patch uses the already-existing die_chain to print utsname information
> >  on Oops. This patch also removes the architecture-specific utsname
> >  printers. To avoid crashing the system further (and hence not printing the
> >  Oops) in the case where the system is so hopelessly smashed that utsname
> >  might be destroyed, we vsprintf the utsname data into a static buffer
> >  first, and then just print that on crash.
> >
> > Testing:
> >  I wrote a module that does a *(int*)0 = 0; and observed that I got my
> >  utsname data printed.
> >
> > Potential impact:
> >  This adds another line to the Oops output, causing the first few lines to
> >  potentially scroll off the screen. This also adds a few more pointer
> >  dereferences in the Oops path, because it adds to the die_chain notifier
> >  chain, reducing the likelihood that the Oops will be printed if there is
> >  very bad memory corruption.
>
> There are strange happenings due to this patch on i386:
>
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> hdc: max request size: 128KiB
> hdc: 156355584 sectors (80054 MB) w/1819KiB Cache, CHS=65535/16/63, UDMA(33)
> hdc: cache flushes supported
>  hdc:<0>Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
>  hdc1 hdc2 hdc3 hdc4 <<0>Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
>  hdc5<0>Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
>  hdc6 >
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> initcall 0xc052a060: idedisk_init+0x0/0x10() returned 0.
> initcall 0xc052a060 ran for 38 msecs: idedisk_init+0x0/0x10()
> Calling initcall 0xc052a070: ide_cdrom_init+0x0/0x10()
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> initcall 0xc052a070: ide_cdrom_init+0x0/0x10() returned 0.
> initcall 0xc052a070 ran for 3 msecs: ide_cdrom_init+0x0/0x10()
> Calling initcall 0xc052a080: idetape_init+0x0/0x90()
> initcall 0xc052a080: idetape_init+0x0/0x90() returned 0.
> initcall 0xc052a080 ran for 0 msecs: idetape_init+0x0/0x90()
> Calling initcall 0xc052a110: idefloppy_init+0x0/0x20()
> ide-floppy driver 0.99.newide
> initcall 0xc052a110: idefloppy_init+0x0/0x20() returned 0.
> initcall 0xc052a110 ran for 0 msecs: idefloppy_init+0x0/0x20()
> Calling initcall 0xc052a3e0: spi_transport_init+0x0/0x30()
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> Linux 2.6.23-rc1-mm1 #7 SMP Tue Jul 24 22:34:40 PDT 2007 i686
> initcall 0xc052a3e0: spi_transport_init+0x0/0x30() returned 0.
> initcall 0xc052a3e0 ran for 3 msecs: spi_transport_init+0x0/0x30()
> Calling initcall 0xc052a410: fc_transport_init+0x0/0x50()
> initcall 0xc052a410: fc_transport_init+0x0/0x50() returned 0.
> initcall 0xc052a410 ran for 0 msecs: fc_transport_init+0x0/0x50()
> Calling initcall 0xc052a460: init_sd+0x0/0x90()
> initcall 0xc052a460: init_sd+0x0/0x90() returned 0.
> initcall 0xc052a460 ran for 0 msecs: init_sd+0x0/0x90()
>
> and it gets no further.
>
> I'll drop it - let's start again?

Ugh, there's a silly mistake there -- the notifier call function is missing a
(diecode == DIE_OOPS) check. Not all die notifications are oopsen -- we
need to filter out the cases we don't care about.


Satyam
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ