All of lore.kernel.org
 help / color / mirror / Atom feed
From: Masahiro Yamada <masahiroy@kernel.org>
To: linux-kbuild@vger.kernel.org
Cc: Masahiro Yamada <masahiroy@kernel.org>,
	Michal Marek <michal.lkml@markovi.net>,
	linux-kernel@vger.kernel.org
Subject: [PATCH v2 27/29] modpost: strip .o from modname before calling new_module()
Date: Mon, 25 May 2020 00:42:33 +0900	[thread overview]
Message-ID: <20200524154235.380482-28-masahiroy@kernel.org> (raw)
In-Reply-To: <20200524154235.380482-1-masahiroy@kernel.org>

new_module() conditionally strips the .o because the modname has .o
suffix when it is called from read_symbols(), but no .o when it is
called from read_dump().

It is clearer to strip .o in read_symbols().

I also used flexible-array for mod->name.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---

Changes in v2: None

 scripts/mod/modpost.c | 20 +++++++++++---------
 scripts/mod/modpost.h |  2 +-
 2 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 662dc1ca10f8..2c783adbfc34 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -174,18 +174,12 @@ static struct module *find_module(const char *modname)
 static struct module *new_module(const char *modname)
 {
 	struct module *mod;
-	char *p;
 
-	mod = NOFAIL(malloc(sizeof(*mod)));
+	mod = NOFAIL(malloc(sizeof(*mod) + strlen(modname) + 1));
 	memset(mod, 0, sizeof(*mod));
-	p = NOFAIL(strdup(modname));
-
-	/* strip trailing .o */
-	if (strends(p, ".o"))
-		p[strlen(p) - 2] = '\0';
 
 	/* add to list */
-	mod->name = p;
+	strcpy(mod->name, modname);
 	mod->is_vmlinux = is_vmlinux(modname);
 	mod->gpl_compatible = -1;
 	mod->next = modules;
@@ -2013,7 +2007,15 @@ static void read_symbols(const char *modname)
 	if (!parse_elf(&info, modname))
 		return;
 
-	mod = new_module(modname);
+	{
+		char *tmp;
+
+		/* strip trailing .o */
+		tmp = NOFAIL(strdup(modname));
+		tmp[strlen(tmp) - 2] = '\0';
+		mod = new_module(tmp);
+		free(tmp);
+	}
 
 	if (!mod->is_vmlinux) {
 		license = get_modinfo(&info, "license");
diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h
index 264c0c51defa..1df87d204c9a 100644
--- a/scripts/mod/modpost.h
+++ b/scripts/mod/modpost.h
@@ -116,7 +116,6 @@ struct namespace_list {
 
 struct module {
 	struct module *next;
-	const char *name;
 	int gpl_compatible;
 	struct symbol *unres;
 	int from_dump;  /* 1 if module was loaded from *.symver */
@@ -130,6 +129,7 @@ struct module {
 	struct namespace_list *missing_namespaces;
 	// Actual imported namespaces
 	struct namespace_list *imported_namespaces;
+	char name[];
 };
 
 struct elf_info {
-- 
2.25.1


  parent reply	other threads:[~2020-05-24 15:43 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-24 15:42 [PATCH v2 00/29] modpost: various fixes, cleanups, optimizations Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 01/29] modpost: drop RCS/CVS $Revision handling in MODULE_VERSION() Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 02/29] modpost: do not call get_modinfo() for vmlinux Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 03/29] modpost: add read_text_file() and get_line() helpers Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 04/29] modpost: fix potential mmap'ed file overrun in get_src_version() Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 05/29] modpost: re-add warning about missing *.mod file Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 06/29] modpost: avoid false-positive file open error Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 07/29] modpost: use read_text_file() and get_line() for reading text files Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 08/29] modpost: remove get_next_text() and make {grab,release_}file static Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 09/29] kbuild: disallow multi-word in M= or KBUILD_EXTMOD Masahiro Yamada
2020-05-31 18:31   ` Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 10/29] modpost: move -T option close to the modpost command Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 11/29] modpost: pass -N option only for modules modpost Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 12/29] modpost: move external module options Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 13/29] modpost: load KBUILD_EXTRA_SYMBOLS files in order Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 14/29] modpost: track if the symbol origin is a dump file or ELF object Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 15/29] modpost: allow to pass -i option multiple times remove -e option Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 16/29] modpost: rename ext_sym_list to dump_list Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 17/29] modpost: re-add -e to set external_module flag Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 18/29] modpost: show warning if vmlinux is not found when processing modules Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 19/29] modpost: show warning if it fails to read symbol dump file Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 20/29] modpost: generate vmlinux.symvers and reuse it for the second modpost Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 21/29] modpost: remove -s option Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 22/29] modpost: remove mod->is_dot_o struct member Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 23/29] modpost: remove is_vmlinux() call in check_for_{gpl_usage,unused}() Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 24/29] modpost: add mod->is_vmlinux struct member Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 25/29] modpost: remove mod->skip " Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 26/29] modpost: set have_vmlinux in new_module() Masahiro Yamada
2020-05-24 15:42 ` Masahiro Yamada [this message]
2020-05-24 15:42 ` [PATCH v2 28/29] modpost: remove is_vmlinux() helper Masahiro Yamada
2020-05-24 15:42 ` [PATCH v2 29/29] modpost: change elf_info->size to size_t Masahiro Yamada

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200524154235.380482-28-masahiroy@kernel.org \
    --to=masahiroy@kernel.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michal.lkml@markovi.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.