Fix the pwd and group functions. The bb_ stuff was a leftover from
[oweals/busybox.git] / insmod.c
index c51ee4f322ec42e776b0734cacec7e19c210174d..57a152c013f8ae0ef7c7a36d974ae5cfc6fdf0ac 100644 (file)
--- a/insmod.c
+++ b/insmod.c
@@ -2,7 +2,7 @@
 /*
  * Mini insmod implementation for busybox
  *
- * Copyright (C) 1999,2000 by Lineo, inc.
+ * Copyright (C) 1999,2000,2001 by Lineo, inc.
  * Written by Erik Andersen <andersen@lineo.com>
  * and Ron Alder <alder@lineo.com>
  *
 #include <dirent.h>
 #include <ctype.h>
 #include <assert.h>
+#include <string.h>
 #include <getopt.h>
 #include <sys/utsname.h>
+#include <sys/syscall.h>
+#include <linux/unistd.h>
 
 //----------------------------------------------------------------------------
 //--------modutils module.h, lines 45-242
@@ -78,7 +81,7 @@
 #ifndef MODUTILS_MODULE_H
 static const int MODUTILS_MODULE_H = 1;
 
-#ident "$Id: insmod.c,v 1.40 2001/01/25 04:11:06 andersen Exp $"
+#ident "$Id: insmod.c,v 1.44 2001/01/27 09:33:38 andersen Exp $"
 
 /* This file contains the structures used by the 2.0 and 2.1 kernels.
    We do not use the kernel headers directly because we do not wish
@@ -284,7 +287,7 @@ int delete_module(const char *);
 #ifndef MODUTILS_OBJ_H
 static const int MODUTILS_OBJ_H = 1;
 
-#ident "$Id: insmod.c,v 1.40 2001/01/25 04:11:06 andersen Exp $"
+#ident "$Id: insmod.c,v 1.44 2001/01/27 09:33:38 andersen Exp $"
 
 /* The relocatable object is manipulated using elfin types.  */
 
@@ -339,7 +342,7 @@ static const int MODUTILS_OBJ_H = 1;
 #define Elf32_RelM     Elf32_Rel
 
 #else
-#error insmod.c no platform specified
+#error Sorry, but insmod.c does not yet support this architecture...
 #endif
 
 #ifndef ElfW
@@ -2932,10 +2935,10 @@ extern int insmod_main( int argc, char **argv)
        if (len > 2 && tmp[len - 2] == '.' && tmp[len - 1] == 'o')
                len -= 2;
        strncpy(m_fullName, tmp, len);
-       strcat(m_fullName, ".o");
-       if (m_name == NULL) {
-               memcpy(m_name, tmp, len);
+       if (*m_name == '\0') {
+               strcpy(m_name, m_fullName);
        }
+       strcat(m_fullName, ".o");
 
        /* Get a filedesc for the module */
        if ((fp = fopen(argv[optind], "r")) == NULL) {