~registry/kmod/master

« back to all changes in this revision

Viewing changes to libkmod/libkmod-elf.c

  • Committer: Lucas De Marchi
  • Date: 2023-06-09 17:45:51 UTC
  • Revision ID: git-v1:7a86f1292051e990507ea48888864ff19626a206
libkmod: Do not inititialize file->memory on open

Add a separate function to load the file contents when it's needed.
When it's not needed on the path of loading modules via finit_module(),
there is no need to mmap the file. This will help support loading
modules with the in-kernel compression support.

This is done differently than the lazy initialization for
kmod_file_get_elf() because on the contents case there is also the
file->size to be updated. It would be a weird API to return the pointer
and have the size changed as a side-effect.

Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>

Show diffs side-by-side

added added

removed removed

Lines of Context:
281
281
        assert_cc(sizeof(uint32_t) == sizeof(Elf32_Word));
282
282
        assert_cc(sizeof(uint32_t) == sizeof(Elf64_Word));
283
283
 
 
284
        if (!memory) {
 
285
                errno = -EINVAL;
 
286
                return NULL;
 
287
        }
 
288
 
284
289
        class = elf_identify(memory, size);
285
290
        if (class < 0) {
286
291
                errno = -class;