summaryrefslogtreecommitdiffstats
path: root/scripts/mod/sumversion.c
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/mod/sumversion.c')
-rw-r--r--scripts/mod/sumversion.c23
1 files changed, 4 insertions, 19 deletions
diff --git a/scripts/mod/sumversion.c b/scripts/mod/sumversion.c
index 0f6dcb4011a8..63062024ce0e 100644
--- a/scripts/mod/sumversion.c
+++ b/scripts/mod/sumversion.c
@@ -396,34 +396,19 @@ void get_src_version(const char *modname, char sum[], unsigned sumlen)
396 unsigned long len; 396 unsigned long len;
397 struct md4_ctx md; 397 struct md4_ctx md;
398 char *sources, *end, *fname; 398 char *sources, *end, *fname;
399 const char *basename;
400 char filelist[PATH_MAX + 1]; 399 char filelist[PATH_MAX + 1];
401 char *modverdir = getenv("MODVERDIR");
402 400
403 if (!modverdir) 401 /* objects for a module are listed in the first line of *.mod file. */
404 modverdir = "."; 402 snprintf(filelist, sizeof(filelist), "%.*smod",
405 403 (int)strlen(modname) - 1, modname);
406 /* Source files for module are in .tmp_versions/modname.mod,
407 after the first line. */
408 if (strrchr(modname, '/'))
409 basename = strrchr(modname, '/') + 1;
410 else
411 basename = modname;
412 snprintf(filelist, sizeof(filelist), "%s/%.*s.mod", modverdir,
413 (int) strlen(basename) - 2, basename);
414 404
415 file = grab_file(filelist, &len); 405 file = grab_file(filelist, &len);
416 if (!file) 406 if (!file)
417 /* not a module or .mod file missing - ignore */ 407 /* not a module or .mod file missing - ignore */
418 return; 408 return;
419 409
420 sources = strchr(file, '\n'); 410 sources = file;
421 if (!sources) {
422 warn("malformed versions file for %s\n", modname);
423 goto release;
424 }
425 411
426 sources++;
427 end = strchr(sources, '\n'); 412 end = strchr(sources, '\n');
428 if (!end) { 413 if (!end) {
429 warn("bad ending versions file for %s\n", modname); 414 warn("bad ending versions file for %s\n", modname);