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-next>] [day] [month] [year] [list]
Message-Id: <200710240836.13412.rgetz@blackfin.uclinux.org>
Date:	Wed, 24 Oct 2007 08:36:13 -0400
From:	Robin Getz <rgetz@...ckfin.uclinux.org>
To:	paulus@...ba.org
Cc:	linux-kernel@...r.kernel.org,
	"Andrew Morton" <akpm@...ux-foundation.org>
Subject: history of extratext sections?

Paul:

I noticed that when passing a zero address to kallsyms_lookup(), the kernel 
thought it was a valid kernel address, even if it was not for the specific 
architecture I was running things on.

This was because is_kernel_extratext() was checking against labels that don't 
exist on many archs. Since PPC is the only kernel which defines _extra_text, 
(which doesn't seem to be used anymore?) there are three options:
 - make the check dependant on PPC
 - make the check dependant on extratext being populated
 - remove _extra_text support from:
    linux-2.6.x/arch/ppc/kernel/vmlinux.lds.S
    linux-2.6.x/include/asm-generic/sections.h
    linux-2.6.x/kernel/kallsyms.c
    linux-2.6.x/scripts/kallsyms.c

Since I don't know the history on that label I thought I would ask (since you 
seem to be the only arch using it) before I sent a patch.

-Robin

Because #1 & #2 are trivial, here is what I was thinking:

 - make the check dependant on PPC
===================================================================
--- linux-2.6.x/kernel/kallsyms.c       (revision 3760)
+++ linux-2.6.x/kernel/kallsyms.c       (working copy)
@@ -51,7 +51,8 @@
 static inline int is_kernel_extratext(unsigned long addr)
 {
+ #ifdef CONFIG_PPC
        if (addr >= (unsigned long)_sextratext
            && addr <= (unsigned long)_eextratext)
                return 1;
+ #endif
        return 0;
 }

OR 

 - make the check dependant on extratext being populated
===================================================================
--- linux-2.6.x/kernel/kallsyms.c       (revision 3760)
+++ linux-2.6.x/kernel/kallsyms.c       (working copy)
@@ -51,7 +51,8 @@
 static inline int is_kernel_extratext(unsigned long addr)
 {
        if (addr >= (unsigned long)_sextratext
-           && addr <= (unsigned long)_eextratext)
+           && addr <= (unsigned long)_eextratext
+           && _sextratext && _eextratext)
                return 1;
        return 0;
 }
-
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