modpost: do not try to match the SHT_NUL section.
authorQuentin Casasnovas <quentin.casasnovas@oracle.com>
Thu, 16 Apr 2015 03:46:41 +0000 (13:16 +0930)
committerRusty Russell <rusty@rustcorp.com.au>
Wed, 22 Apr 2015 08:01:33 +0000 (17:31 +0930)
Trying to match the SHT_NUL section isn't useful and causes build failures
on parisc and mn10300 since the addition of section strict white-listing
and __ex_table sanitizing.

Signed-off-by: Quentin Casasnovas <quentin.casasnovas@oracle.com>
Reported-by: Guenter Roeck <linux@roeck-us.net>
Fixes: 050e57fd5936 ("modpost: add strict white-listing when referencing....")
Fixes: 52dc0595d540 ("modpost: handle relocations mismatch in __ex_table.")
Tested-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
scripts/mod/modpost.c

index fd949770da0c81e64ba07ee4846d1c4386125e80..45e4027d31938565fb21e58dffe2afb22295fc53 100644 (file)
@@ -1064,6 +1064,15 @@ static const struct sectioncheck *section_mismatch(
        int elems = sizeof(sectioncheck) / sizeof(struct sectioncheck);
        const struct sectioncheck *check = &sectioncheck[0];
 
+       /*
+        * The target section could be the SHT_NUL section when we're
+        * handling relocations to un-resolved symbols, trying to match it
+        * doesn't make much sense and causes build failures on parisc and
+        * mn10300 architectures.
+        */
+       if (*tosec == '\0')
+               return NULL;
+
        for (i = 0; i < elems; i++) {
                if (match(fromsec, check->fromsec)) {
                        if (check->bad_tosec[0] && match(tosec, check->bad_tosec))