problems with modprobe on kernel 2.4

Denys Vlasenko vda.linux at googlemail.com
Thu Apr 2 02:31:57 UTC 2009


On Thursday 02 April 2009 00:04, Guenter wrote:
> please take a look at attached patch; this seems to work almost for me =
> means that insmod as well as modprobe load gzip'd as well as
> non-compressed modules fine, but currently I see another prob regarding
> dependencies, but I guess this is a separate prob with moddep stuff...
> 
> attached patch is a diff -u against modutils-24.c from current svn
> trunk; it does not yet patch obj_load_progbits() since there another
> function for loading is used, and was unsure if I can replace there in
> same way as I did in obj_load(); also I want to hear your comments first
> if my patch is what you expect to see...


> -static struct obj_file *obj_load(int fd, int loadprogbits UNUSED_PARAM)
> +static struct obj_file *obj_load(void *memimg, size_t memimg_size, int
> loadprogbits UNUSED_PARAM)

Patch is damaged by linewrapping.
Please send as attachment next time, not inline.



> -	xlseek(fd, f->header.e_shoff, SEEK_SET);
> -	xread(fd, section_headers, sizeof(ElfW(Shdr)) * shnum);
> +	if (memimg_size < (f->header.e_shoff + sizeof(ElfW(Shdr)) * shnum))

bug in the line above.

> +		bb_error_msg_and_die("loaded memory image seems too small");
> +	memcpy(section_headers, memimg + f->header.e_shoff, sizeof(ElfW(Shdr))



> -	fd = open_or_warn(m_filename, O_RDONLY);
> -	if (fd < 0)
> +
> +	if (strstr(m_filename, ".gz"))

bug. "module.gzopled.ko" is not a gzip file, yet will be detected as one.

> +		m_image = xmalloc_open_zipped_read_close(m_filename, &len);
> +	else
> +		m_image = xmalloc_open_read_close(m_filename, &len);
> +	if (!m_image)
>  		return EXIT_FAILURE;

Why do you do it this way at all? Can this work instead? -

size_t len = MAXINT(ssize_t);
void *image = xmalloc_open_zipped_read_close(filename, &len);



>  	m_name = xstrdup(bb_basename(m_filename));
> -	p = strrchr(m_name, '.');
> +	p = strchr(m_name, '.');

Why?

--
vda


More information about the busybox mailing list