last_patch61 from vodz:
New complex patch for decrease size devel version. Requires previous patch. Also removed small problems from dutmp and tar applets. Also includes vodz' last_patch61_2: Last patch correcting comment for #endif and more integrated with libbb (very reduce size if used "cat" applet also). Requires last_patch61 for modutils/config.in.
This commit is contained in:
@@ -29,5 +29,9 @@ if [ "$CONFIG_LSMOD" = "y" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$CONFIG_INSMOD" = "y" -o "$CONFIG_LSMOD" = "y" ]; then
|
||||
bool 'Support tainted module checking with new kernels' CONFIG_FEATURE_CHECK_TAINTED_MODULE
|
||||
fi
|
||||
|
||||
endmenu
|
||||
|
||||
|
@@ -234,7 +234,7 @@
|
||||
#ifndef MODUTILS_MODULE_H
|
||||
static const int MODUTILS_MODULE_H = 1;
|
||||
|
||||
#ident "$Id: insmod.c,v 1.90 2002/09/16 05:30:24 andersen Exp $"
|
||||
#ident "$Id: insmod.c,v 1.91 2002/10/10 04:20:21 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
|
||||
@@ -455,7 +455,7 @@ int delete_module(const char *);
|
||||
#ifndef MODUTILS_OBJ_H
|
||||
static const int MODUTILS_OBJ_H = 1;
|
||||
|
||||
#ident "$Id: insmod.c,v 1.90 2002/09/16 05:30:24 andersen Exp $"
|
||||
#ident "$Id: insmod.c,v 1.91 2002/10/10 04:20:21 andersen Exp $"
|
||||
|
||||
/* The relocatable object is manipulated using elfin types. */
|
||||
|
||||
@@ -3422,6 +3422,7 @@ static void hide_special_symbols(struct obj_file *f)
|
||||
ELFW(ST_INFO) (STB_LOCAL, ELFW(ST_TYPE) (sym->info));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_FEATURE_CHECK_TAINTED_MODULE
|
||||
static int obj_gpl_license(struct obj_file *f, const char **license)
|
||||
{
|
||||
struct obj_section *sec;
|
||||
@@ -3533,6 +3534,9 @@ static void check_tainted_module(struct obj_file *f, char *m_name)
|
||||
if (fd >= 0)
|
||||
close(fd);
|
||||
}
|
||||
#else /* CONFIG_FEATURE_CHECK_TAINTED_MODULE */
|
||||
#define check_tainted_module(x, y) do { } while(0);
|
||||
#endif /* CONFIG_FEATURE_CHECK_TAINTED_MODULE */
|
||||
|
||||
extern int insmod_main( int argc, char **argv)
|
||||
{
|
||||
|
@@ -40,13 +40,15 @@
|
||||
#include "busybox.h"
|
||||
|
||||
|
||||
|
||||
#ifndef CONFIG_FEATURE_CHECK_TAINTED_MODULE
|
||||
static inline void check_tainted(void) { printf("\n"); }
|
||||
#else
|
||||
#define TAINT_FILENAME "/proc/sys/kernel/tainted"
|
||||
#define TAINT_PROPRIETORY_MODULE (1<<0)
|
||||
#define TAINT_FORCED_MODULE (1<<1)
|
||||
#define TAINT_UNSAFE_SMP (1<<2)
|
||||
|
||||
void check_tainted(void)
|
||||
static void check_tainted(void)
|
||||
{
|
||||
int tainted;
|
||||
FILE *f;
|
||||
@@ -66,6 +68,7 @@ void check_tainted(void)
|
||||
printf(" Not tainted\n");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FEATURE_QUERY_MODULE_INTERFACE
|
||||
|
||||
@@ -111,6 +114,7 @@ static int my_query_module(const char *name, int which, void **buf,
|
||||
|
||||
return my_ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
extern int lsmod_main(int argc, char **argv)
|
||||
{
|
||||
@@ -170,26 +174,16 @@ extern int lsmod_main(int argc, char **argv)
|
||||
return( 0);
|
||||
}
|
||||
|
||||
#else /*CONFIG_FEATURE_OLD_MODULE_INTERFACE*/
|
||||
#else /* CONFIG_FEATURE_QUERY_MODULE_INTERFACE */
|
||||
|
||||
extern int lsmod_main(int argc, char **argv)
|
||||
{
|
||||
int fd, i;
|
||||
char line[128];
|
||||
|
||||
printf("Module Size Used by");
|
||||
check_tainted();
|
||||
fflush(stdout);
|
||||
|
||||
if ((fd = open("/proc/modules", O_RDONLY)) >= 0 ) {
|
||||
while ((i = read(fd, line, sizeof(line))) > 0) {
|
||||
write(fileno(stdout), line, i);
|
||||
}
|
||||
close(fd);
|
||||
return 0;
|
||||
}
|
||||
perror_msg_and_die("/proc/modules");
|
||||
if(print_file_by_name("/proc/modules") == FALSE)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /*CONFIG_FEATURE_OLD_MODULE_INTERFACE*/
|
||||
#endif /* CONFIG_FEATURE_QUERY_MODULE_INTERFACE */
|
||||
|
Reference in New Issue
Block a user