All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] modpost: remove use of non-standard strsep() in HOSTCC code
@ 2020-06-25  8:41 H. Nikolaus Schaller
  2020-06-28  5:51   ` Masahiro Yamada
  0 siblings, 1 reply; 11+ messages in thread
From: H. Nikolaus Schaller @ 2020-06-25  8:41 UTC (permalink / raw)
  To: Masahiro Yamada, Michal Marek
  Cc: linux-kbuild, linux-kernel, letux-kernel, H. Nikolaus Schaller

strsep() is neither standard C nor POSIX and used outside
the kernel code here. Using it here requires that the
build host supports it out of the box which is e.g.
not true for a Darwin build host and using a cross-compiler.
This leads to:

scripts/mod/modpost.c:145:2: warning: implicit declaration of function 'strsep' [-Wimplicit-function-declaration]
  return strsep(stringp, "\n");
  ^

and a segfault when running MODPOST.

See also: https://stackoverflow.com/a/7219504

So let's add some lines of code separating the string at the
next newline character instead of using strsep(). It does not
hurt kernel size or speed since this code is run on the build host.

Fixes: ac5100f5432967 ("modpost: add read_text_file() and get_line() helpers")
Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
---
 scripts/mod/modpost.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 6aea65c65745..8fe63989c6e1 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -138,11 +138,16 @@ char *read_text_file(const char *filename)
 
 char *get_line(char **stringp)
 {
+	char *p;
 	/* do not return the unwanted extra line at EOF */
 	if (*stringp && **stringp == '\0')
 		return NULL;
 
-	return strsep(stringp, "\n");
+	p = *stringp;
+	while (**stringp != '\n')
+		(*stringp)++;
+	*(*stringp)++ = '\0';
+	return p;
 }
 
 /* A list of all modules we processed */
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2020-06-28 14:21 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-25  8:41 [PATCH] modpost: remove use of non-standard strsep() in HOSTCC code H. Nikolaus Schaller
2020-06-28  5:51 ` Masahiro Yamada
2020-06-28  5:51   ` Masahiro Yamada
2020-06-28  6:17   ` H. Nikolaus Schaller
2020-06-28  6:17     ` H. Nikolaus Schaller
2020-06-28  7:52     ` Masahiro Yamada
2020-06-28  7:52       ` Masahiro Yamada
2020-06-28  8:20       ` H. Nikolaus Schaller
2020-06-28  8:20         ` H. Nikolaus Schaller
2020-06-28 14:20         ` Masahiro Yamada
2020-06-28 14:20           ` Masahiro Yamada

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.