* Fixed insmod module option parsing for options lacking an '='.
Fix thanks to Marc Nijdam <marc_nijdam@hp.com> -Erik
This commit is contained in:
parent
3adffb7fc8
commit
ef40aa81c5
@ -4,6 +4,8 @@
|
|||||||
"none" entries in /proc/mounts, added a hack to make sysinfo
|
"none" entries in /proc/mounts, added a hack to make sysinfo
|
||||||
work with both old and new kernels).
|
work with both old and new kernels).
|
||||||
* Fixed a nasty bug in tar when could mess up saved symlinks.
|
* Fixed a nasty bug in tar when could mess up saved symlinks.
|
||||||
|
* Fixed insmod module option parsing for options lacking an '='.
|
||||||
|
Fix thanks to Marc Nijdam <marc_nijdam@hp.com>
|
||||||
|
|
||||||
-Erik Andersen
|
-Erik Andersen
|
||||||
|
|
||||||
|
12
insmod.c
12
insmod.c
@ -71,7 +71,7 @@
|
|||||||
#ifndef MODUTILS_MODULE_H
|
#ifndef MODUTILS_MODULE_H
|
||||||
#define MODUTILS_MODULE_H 1
|
#define MODUTILS_MODULE_H 1
|
||||||
|
|
||||||
#ident "$Id: insmod.c,v 1.10 2000/06/22 18:19:31 andersen Exp $"
|
#ident "$Id: insmod.c,v 1.11 2000/06/26 11:16:22 andersen Exp $"
|
||||||
|
|
||||||
/* This file contains the structures used by the 2.0 and 2.1 kernels.
|
/* 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
|
We do not use the kernel headers directly because we do not wish
|
||||||
@ -277,7 +277,7 @@ int delete_module(const char *);
|
|||||||
#ifndef MODUTILS_OBJ_H
|
#ifndef MODUTILS_OBJ_H
|
||||||
#define MODUTILS_OBJ_H 1
|
#define MODUTILS_OBJ_H 1
|
||||||
|
|
||||||
#ident "$Id: insmod.c,v 1.10 2000/06/22 18:19:31 andersen Exp $"
|
#ident "$Id: insmod.c,v 1.11 2000/06/26 11:16:22 andersen Exp $"
|
||||||
|
|
||||||
/* The relocatable object is manipulated using elfin types. */
|
/* The relocatable object is manipulated using elfin types. */
|
||||||
|
|
||||||
@ -1189,8 +1189,10 @@ old_process_module_arguments(struct obj_file *f, int argc, char **argv)
|
|||||||
int *loc;
|
int *loc;
|
||||||
|
|
||||||
p = *argv;
|
p = *argv;
|
||||||
if ((q = strchr(p, '=')) == NULL)
|
if ((q = strchr(p, '=')) == NULL) {
|
||||||
|
argc--;
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
*q++ = '\0';
|
*q++ = '\0';
|
||||||
|
|
||||||
sym = obj_find_symbol(f, p);
|
sym = obj_find_symbol(f, p);
|
||||||
@ -1550,8 +1552,10 @@ new_process_module_arguments(struct obj_file *f, int argc, char **argv)
|
|||||||
int min, max, n;
|
int min, max, n;
|
||||||
|
|
||||||
p = *argv;
|
p = *argv;
|
||||||
if ((q = strchr(p, '=')) == NULL)
|
if ((q = strchr(p, '=')) == NULL) {
|
||||||
|
argc--;
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
key = alloca(q - p + 6);
|
key = alloca(q - p + 6);
|
||||||
memcpy(key, "parm_", 5);
|
memcpy(key, "parm_", 5);
|
||||||
|
@ -71,7 +71,7 @@
|
|||||||
#ifndef MODUTILS_MODULE_H
|
#ifndef MODUTILS_MODULE_H
|
||||||
#define MODUTILS_MODULE_H 1
|
#define MODUTILS_MODULE_H 1
|
||||||
|
|
||||||
#ident "$Id: insmod.c,v 1.10 2000/06/22 18:19:31 andersen Exp $"
|
#ident "$Id: insmod.c,v 1.11 2000/06/26 11:16:22 andersen Exp $"
|
||||||
|
|
||||||
/* This file contains the structures used by the 2.0 and 2.1 kernels.
|
/* 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
|
We do not use the kernel headers directly because we do not wish
|
||||||
@ -277,7 +277,7 @@ int delete_module(const char *);
|
|||||||
#ifndef MODUTILS_OBJ_H
|
#ifndef MODUTILS_OBJ_H
|
||||||
#define MODUTILS_OBJ_H 1
|
#define MODUTILS_OBJ_H 1
|
||||||
|
|
||||||
#ident "$Id: insmod.c,v 1.10 2000/06/22 18:19:31 andersen Exp $"
|
#ident "$Id: insmod.c,v 1.11 2000/06/26 11:16:22 andersen Exp $"
|
||||||
|
|
||||||
/* The relocatable object is manipulated using elfin types. */
|
/* The relocatable object is manipulated using elfin types. */
|
||||||
|
|
||||||
@ -1189,8 +1189,10 @@ old_process_module_arguments(struct obj_file *f, int argc, char **argv)
|
|||||||
int *loc;
|
int *loc;
|
||||||
|
|
||||||
p = *argv;
|
p = *argv;
|
||||||
if ((q = strchr(p, '=')) == NULL)
|
if ((q = strchr(p, '=')) == NULL) {
|
||||||
|
argc--;
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
*q++ = '\0';
|
*q++ = '\0';
|
||||||
|
|
||||||
sym = obj_find_symbol(f, p);
|
sym = obj_find_symbol(f, p);
|
||||||
@ -1550,8 +1552,10 @@ new_process_module_arguments(struct obj_file *f, int argc, char **argv)
|
|||||||
int min, max, n;
|
int min, max, n;
|
||||||
|
|
||||||
p = *argv;
|
p = *argv;
|
||||||
if ((q = strchr(p, '=')) == NULL)
|
if ((q = strchr(p, '=')) == NULL) {
|
||||||
|
argc--;
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
key = alloca(q - p + 6);
|
key = alloca(q - p + 6);
|
||||||
memcpy(key, "parm_", 5);
|
memcpy(key, "parm_", 5);
|
||||||
|
Loading…
Reference in New Issue
Block a user