]> git.ipfire.org Git - thirdparty/kmod.git/log
thirdparty/kmod.git
12 years agolibkmod-util: add helper function to write to fd
Lucas De Marchi [Mon, 16 Jan 2012 17:46:01 +0000 (15:46 -0200)] 
libkmod-util: add helper function to write to fd

12 years agolibkmod-util: adhere to coding style
Lucas De Marchi [Mon, 16 Jan 2012 17:45:12 +0000 (15:45 -0200)] 
libkmod-util: adhere to coding style

12 years agolibkmod: export enum kmod_index and rename members
Lucas De Marchi [Mon, 16 Jan 2012 14:01:48 +0000 (12:01 -0200)] 
libkmod: export enum kmod_index and rename members

12 years agolibkmod: store prefix of each index
Lucas De Marchi [Mon, 16 Jan 2012 12:43:34 +0000 (10:43 -0200)] 
libkmod: store prefix of each index

Prefix is useful when dumping the index (to be added later).

12 years agoUpdate documentation with recent changes
Lucas De Marchi [Sat, 14 Jan 2012 14:09:34 +0000 (12:09 -0200)] 
Update documentation with recent changes

12 years agodepmod: deal with relative root dir
Lucas De Marchi [Sat, 14 Jan 2012 04:46:58 +0000 (02:46 -0200)] 
depmod: deal with relative root dir

module paths coming from libkmod are absolute. Make sure we store the
absolute dirname to compare later.

12 years agokmod_new(): deal with relative paths for dirname
Lucas De Marchi [Sat, 14 Jan 2012 04:31:51 +0000 (02:31 -0200)] 
kmod_new(): deal with relative paths for dirname

12 years agodepmod: fix idx calculation after postponed array creation
Lucas De Marchi [Sat, 14 Jan 2012 04:04:56 +0000 (02:04 -0200)] 
depmod: fix idx calculation after postponed array creation

We need to set up each module's idx when the array is created. So,
postpone its initialization as well.

12 years agoReduce scope of counter variable
Lucas De Marchi [Sat, 14 Jan 2012 04:04:31 +0000 (02:04 -0200)] 
Reduce scope of counter variable

12 years agodepmod: adhere to coding style
Lucas De Marchi [Sat, 14 Jan 2012 04:03:21 +0000 (02:03 -0200)] 
depmod: adhere to coding style

12 years agomodprobe: dump configuration
Lucas De Marchi [Fri, 13 Jan 2012 04:35:34 +0000 (02:35 -0200)] 
modprobe: dump configuration

12 years agoconfig: let softdeps dump their data
Lucas De Marchi [Fri, 13 Jan 2012 12:49:31 +0000 (10:49 -0200)] 
config: let softdeps dump their data

12 years agoconfig: add exported iterator functions
Lucas De Marchi [Fri, 13 Jan 2012 04:24:18 +0000 (02:24 -0200)] 
config: add exported iterator functions

Config iterators are useful to get each configuration list, remember its
type and how to get their key/value pair.

softdeps don't have the value yet, because they are stored as string
vectors.

12 years agolibkmod-private: allow to get aliases from config
Lucas De Marchi [Fri, 13 Jan 2012 03:14:46 +0000 (01:14 -0200)] 
libkmod-private: allow to get aliases from config

12 years agobuild-sys: add script to bootstrap and configure
Lucas De Marchi [Thu, 12 Jan 2012 20:31:10 +0000 (18:31 -0200)] 
build-sys: add script to bootstrap and configure

12 years agobuild-sys: rename autogen.sh to bootstrap and keep a symlink
Lucas De Marchi [Thu, 12 Jan 2012 20:23:32 +0000 (18:23 -0200)] 
build-sys: rename autogen.sh to bootstrap and keep a symlink

12 years agoTODO: add code unification to list of tasks
Lucas De Marchi [Thu, 12 Jan 2012 20:14:32 +0000 (18:14 -0200)] 
TODO: add code unification to list of tasks

12 years agomodprobe: abort on dependency loop that cannot be broken
Lucas De Marchi [Thu, 12 Jan 2012 19:14:30 +0000 (17:14 -0200)] 
modprobe: abort on dependency loop that cannot be broken

12 years agomodprobe: fix leak on error path
Lucas De Marchi [Thu, 12 Jan 2012 17:36:54 +0000 (15:36 -0200)] 
modprobe: fix leak on error path

12 years agoTODO: update tasks
Lucas De Marchi [Thu, 12 Jan 2012 17:28:19 +0000 (15:28 -0200)] 
TODO: update tasks

12 years agomodprobe: rework module removal without tree traversing
Lucas De Marchi [Thu, 12 Jan 2012 17:23:51 +0000 (15:23 -0200)] 
modprobe: rework module removal without tree traversing

Just like the module insertion, module removal is remade.

The dependencies line that comes from modules.dep already contains all
the dependencies necessary to remove that module. Therefore modprobe
doesn't have to do the recursion between the modules in order to remove
it. All we have to do is to remove in order:

For the module being removed:
----------------------------

1. softdeps (in reverse order)
2. deps (in reverse order)
3. module
4. postdeps (in reverse order)

For any of the dependencies:
----------------------------

1. softdeps (in reverse order)
2. module
3. softdeps (in reverse order)

12 years agoTODO: update differences with m-i-t
Lucas De Marchi [Thu, 12 Jan 2012 16:45:11 +0000 (14:45 -0200)] 
TODO: update differences with m-i-t

12 years agomodprobe: rework module insertion without tree traversing
Lucas De Marchi [Thu, 12 Jan 2012 04:21:26 +0000 (02:21 -0200)] 
modprobe: rework module insertion without tree traversing

The dependencies line that comes from modules.dep already contains all
the dependencies necessary to insert that module. Therefore modprobe
doesn't have to do the recursion between the modules in order to load a
module. All we have to do is to load in order:

For the module being loaded:
----------------------------

1. softdeps
2. deps
3. module
4. postdeps

For any of the dependencies:
----------------------------

1. softdeps
2. module
3. softdeps

12 years agoman: build modinfo man page
Lucas De Marchi [Thu, 12 Jan 2012 16:20:10 +0000 (14:20 -0200)] 
man: build modinfo man page

12 years agoman: build modprobe man page
Lucas De Marchi [Thu, 12 Jan 2012 16:12:27 +0000 (14:12 -0200)] 
man: build modprobe man page

12 years agoman: build rmmod man page
Lucas De Marchi [Thu, 12 Jan 2012 16:02:27 +0000 (14:02 -0200)] 
man: build rmmod man page

12 years agoman: build lsmod man page
Lucas De Marchi [Thu, 12 Jan 2012 15:57:45 +0000 (13:57 -0200)] 
man: build lsmod man page

12 years agoman: build insmod man page
Lucas De Marchi [Thu, 12 Jan 2012 15:53:55 +0000 (13:53 -0200)] 
man: build insmod man page

12 years agoman: build depmod man page
Lucas De Marchi [Thu, 12 Jan 2012 15:47:21 +0000 (13:47 -0200)] 
man: build depmod man page

12 years agoman: build modules.dep{,.bin} man pages
Lucas De Marchi [Thu, 12 Jan 2012 15:34:09 +0000 (13:34 -0200)] 
man: build modules.dep{,.bin} man pages

12 years agoman: build modprobe.d man page
Lucas De Marchi [Thu, 12 Jan 2012 15:18:08 +0000 (13:18 -0200)] 
man: build modprobe.d man page

12 years agobuild-sys: build man pages
Lucas De Marchi [Thu, 12 Jan 2012 13:48:21 +0000 (11:48 -0200)] 
build-sys: build man pages

12 years agoman: convert depmod.d.sgml to xml and update it
Lucas De Marchi [Thu, 12 Jan 2012 13:24:38 +0000 (11:24 -0200)] 
man: convert depmod.d.sgml to xml and update it

12 years agobuild-sys: fix clean rule removing tracked files
Lucas De Marchi [Thu, 12 Jan 2012 13:52:58 +0000 (11:52 -0200)] 
build-sys: fix clean rule removing tracked files

12 years agorename doc dir to man
Lucas De Marchi [Thu, 12 Jan 2012 12:05:25 +0000 (10:05 -0200)] 
rename doc dir to man

12 years agodoc/modprobe.sgml: Various updates wrt inclusion with kmod
Robby Workman [Thu, 12 Jan 2012 06:00:27 +0000 (00:00 -0600)] 
doc/modprobe.sgml: Various updates wrt inclusion with kmod

* TODO: document "--remove-dependencies" flag

12 years agodoc/depmod.sgml: Remove references to legacy map files
Robby Workman [Thu, 12 Jan 2012 05:47:11 +0000 (23:47 -0600)] 
doc/depmod.sgml: Remove references to legacy map files

12 years agodoc/depmod.sgml: Remove refs to depmod.conf
Robby Workman [Thu, 12 Jan 2012 05:40:24 +0000 (23:40 -0600)] 
doc/depmod.sgml: Remove refs to depmod.conf

12 years agodoc/depmod.d.sgml: Various touchups; mostly s/depmod.conf/depmod.d/g
Robby Workman [Thu, 12 Jan 2012 05:37:03 +0000 (23:37 -0600)] 
doc/depmod.d.sgml: Various touchups; mostly s/depmod.conf/depmod.d/g

12 years agodoc/modprobe.d.sgml: Various touchups
Robby Workman [Thu, 12 Jan 2012 06:06:27 +0000 (00:06 -0600)] 
doc/modprobe.d.sgml: Various touchups

* change references to "kmod" instead of "module-init-tools"
* remove references to modprobe.conf

12 years agodoc: Import sgml manpages from module-init-tools repo
Robby Workman [Thu, 12 Jan 2012 06:04:57 +0000 (00:04 -0600)] 
doc: Import sgml manpages from module-init-tools repo

12 years agomodprobe: show if module is in kernel
Lucas De Marchi [Wed, 11 Jan 2012 23:48:08 +0000 (21:48 -0200)] 
modprobe: show if module is in kernel

Now with './tools/modprobe --show-depends ahci' (ahci is builtin) we have the following
output:

$ ./tools/modprobe --show-depends ahci
builtin ahci

Just like modprobe from m-i-t. Previously we had:

$ ./tools/modprobe --show-depends ahci
FATAL: Module ahci not found.

12 years agotest: add check of module's state
Lucas De Marchi [Wed, 11 Jan 2012 23:22:21 +0000 (21:22 -0200)] 
test: add check of module's state

12 years agodepmod: Postpone creation of module array
Jan Alexander Steffens (heftig) [Wed, 11 Jan 2012 22:17:38 +0000 (23:17 +0100)] 
depmod: Postpone creation of module array

Deleting modules (we have found replacements) invalidates the indices
because the array collapses removed elements, hitting the assertion.

Since we don't make use of the array until the sorting step, build it from
the modules_by_name hash instead.

12 years agomodprobe: break dependency loop by checking if module is loaded
Lucas De Marchi [Wed, 11 Jan 2012 20:29:55 +0000 (18:29 -0200)] 
modprobe: break dependency loop by checking if module is loaded

modprobe doesn't have support for handling dependency loop. That happens
with poorly written softdeps that can introduce a loop. We must deal
with them like it's being done in libkmod.

However, we can break a dependency loop when the dependency was already
inserted. This commit fixes this issue, that happens in the following
scenario:

dependencies:
-------------

modA:
modB: modA
modC: modA

config:

softdep modA post: modB modC

This creates the following loop:

modA
    inserted ok
    handle post-soft-deps of modA -> modB modC
        modB
            handle dependencies of modB -> modA
                modA is already inserted
                    handle post-soft-deps of modA -> modB modC

And so on and so forth.

Now we break the loop by checking if module is already inserted, before
handling it. Thus this gives us:

modA
    inserted ok
    handle post-soft-deps of modA -> modB modC
        modB
            handle dependencies of modB -> modA
                modA is already inserted
            inserted ok
        modC
            handle dependencies of modC -> modA
                modA is already inserted
            inserted ok

12 years agoautogen.sh: configure with 3-clicks + paste
Lucas De Marchi [Wed, 11 Jan 2012 19:54:05 +0000 (17:54 -0200)] 
autogen.sh: configure with 3-clicks + paste

12 years agomodprobe: adhere do coding style
Lucas De Marchi [Wed, 11 Jan 2012 17:38:50 +0000 (15:38 -0200)] 
modprobe: adhere do coding style

12 years agormmod: behavior more like m-i-t's rmmod
Dave Reisner [Wed, 11 Jan 2012 00:28:30 +0000 (19:28 -0500)] 
rmmod: behavior more like m-i-t's rmmod

In line with m-i-t's behavior, we should check to see if each module is:

- loaded
- has any holders
- has a 0 refcnt

Detecting any of these lets us provide a more useful message than the
kernel's EPERM response to delete_module(2).

Additionally, alter the main loop behavior to avoid exiting early on the
first error.

12 years agomodprobe: check for EPERM on insertion
Dave Reisner [Tue, 10 Jan 2012 18:36:27 +0000 (13:36 -0500)] 
modprobe: check for EPERM on insertion

Throw an appropriate error when an unprivileged user attempts to load a
module.

12 years agoconfig: deprecate 'include' and 'config' commands
Lucas De Marchi [Wed, 11 Jan 2012 02:28:12 +0000 (00:28 -0200)] 
config: deprecate 'include' and 'config' commands

12 years agoFix error code returned on module removal
Lucas De Marchi [Wed, 11 Jan 2012 02:08:14 +0000 (00:08 -0200)] 
Fix error code returned on module removal

12 years agobuild-sys: fix build with zlib/xz after private lib
Lucas De Marchi [Tue, 10 Jan 2012 18:22:59 +0000 (16:22 -0200)] 
build-sys: fix build with zlib/xz after private lib

12 years agoTODO: add task to modprobe
Lucas De Marchi [Tue, 10 Jan 2012 17:45:14 +0000 (15:45 -0200)] 
TODO: add task to modprobe

12 years agobuild-sys: workaround libtool issue with argv[0]
Lucas De Marchi [Tue, 10 Jan 2012 16:06:24 +0000 (14:06 -0200)] 
build-sys: workaround libtool issue with argv[0]

Symlinking tools to kmod doesn't work because argv[0] is not the name of
the symlink, but rather 'kmod' (since libtool's wrapper script calls the
tools/.libs/kmod directly)

Now we create another binary kmod-nolib that is statically linked to
libkmod so we can call the binary directly and do not worry about
LD_LIBRARY_PATH.

12 years agobuild-sys: build tests as part of check phase
Lucas De Marchi [Tue, 10 Jan 2012 13:34:12 +0000 (11:34 -0200)] 
build-sys: build tests as part of check phase

Do not unconditionally compile tests, make them as target of 'make
check'. Only those listed in TESTS var are run.

12 years agobuild-sys: create symlinks instead of building separate tools
Lucas De Marchi [Tue, 10 Jan 2012 13:15:19 +0000 (11:15 -0200)] 
build-sys: create symlinks instead of building separate tools

12 years agobuild-sys: allow building without having gtk-doc installed
Lucas De Marchi [Tue, 10 Jan 2012 14:55:13 +0000 (12:55 -0200)] 
build-sys: allow building without having gtk-doc installed

12 years agoconfig: be reliable againt syntax errors in configs
Lucas De Marchi [Tue, 10 Jan 2012 17:00:07 +0000 (15:00 -0200)] 
config: be reliable againt syntax errors in configs

12 years agoTODO: add tasks to modprobe
Lucas De Marchi [Tue, 10 Jan 2012 12:19:01 +0000 (10:19 -0200)] 
TODO: add tasks to modprobe

12 years agodoc: fix out of tree build
Lucas De Marchi [Mon, 9 Jan 2012 15:32:31 +0000 (13:32 -0200)] 
doc: fix out of tree build

12 years agobuild-sys: give recommended configure options for hacking
Lucas De Marchi [Mon, 9 Jan 2012 15:26:06 +0000 (13:26 -0200)] 
build-sys: give recommended configure options for hacking

12 years agoREADME: add more information
Lucas De Marchi [Mon, 9 Jan 2012 15:15:46 +0000 (13:15 -0200)] 
README: add more information

12 years agobuild-sys: do not run configure in autogen.sh
Lucas De Marchi [Mon, 9 Jan 2012 15:00:28 +0000 (13:00 -0200)] 
build-sys: do not run configure in autogen.sh

12 years agodoc: organize sections
Lucas De Marchi [Mon, 9 Jan 2012 06:47:40 +0000 (04:47 -0200)] 
doc: organize sections

12 years agodoc: add gtk-doc to generate documentation
Lucas De Marchi [Mon, 9 Jan 2012 06:20:55 +0000 (04:20 -0200)] 
doc: add gtk-doc to generate documentation

Current limitation is horrible no support to sections: we have to to
have separate header files or to maintain the libkmod-sections.txt file.
We are doing the latter.

12 years agodoc: fix broken links to other functions
Lucas De Marchi [Mon, 9 Jan 2012 05:45:19 +0000 (03:45 -0200)] 
doc: fix broken links to other functions

12 years agodoc: fix order of param descriptions
Lucas De Marchi [Mon, 9 Jan 2012 05:09:49 +0000 (03:09 -0200)] 
doc: fix order of param descriptions

12 years agoMatch param names on header and source code
Lucas De Marchi [Mon, 9 Jan 2012 05:08:26 +0000 (03:08 -0200)] 
Match param names on header and source code

This is needed by gtk-doc (to be added later) to be able to properly
document the function.

12 years agodoc: fix comments format
Lucas De Marchi [Mon, 9 Jan 2012 04:35:41 +0000 (02:35 -0200)] 
doc: fix comments format

12 years agoUpdate copyright
Lucas De Marchi [Mon, 9 Jan 2012 02:40:50 +0000 (00:40 -0200)] 
Update copyright

12 years agomodprobe: fix error path when loading dependencies
Lucas De Marchi [Sun, 8 Jan 2012 20:08:05 +0000 (18:08 -0200)] 
modprobe: fix error path when loading dependencies

demarchi> scenario is the following:
demarchi> modA depends on modB and modC
demarchi> if there's a race when trying to insert a dependency of a module, say
          modB, it will stop loading all the modules
demarchi> it should check by "module already loaded error"
demarchi> like it does for modA

12 years agomodprobe: show is independent from verbose level.
Gustavo Sverzut Barbieri [Sun, 8 Jan 2012 15:58:28 +0000 (13:58 -0200)] 
modprobe: show is independent from verbose level.

"modprobe --quiet --show-depends" now works.

12 years agoReplace NAME_MAX with PATH_MAX for module aliases
Lucas De Marchi [Sun, 8 Jan 2012 03:02:29 +0000 (01:02 -0200)] 
Replace NAME_MAX with PATH_MAX for module aliases

Module aliases can be bigger than NAME_MAX. So, replace with PATH_MAX
that is bigger enough to hold them.

Technically in some places NAME_MAX would be sufficient (those using
module names only), but they use functions that can be called with
alias. So increase the buffers in these cases to PATH_MAX too.

12 years agoconfig: check if opening /proc/cmdline succeeded
Lucas De Marchi [Fri, 6 Jan 2012 21:22:41 +0000 (19:22 -0200)] 
config: check if opening /proc/cmdline succeeded

12 years agotools/kmod-depmod: fix aliasing warning
Rolf Eike Beer [Fri, 6 Jan 2012 12:33:11 +0000 (13:33 +0100)] 
tools/kmod-depmod: fix aliasing warning

12 years agoRevert "tools/kmod-depmod: fix aliasing warning"
Lucas De Marchi [Fri, 6 Jan 2012 12:44:45 +0000 (10:44 -0200)] 
Revert "tools/kmod-depmod: fix aliasing warning"

This reverts commit f63fc9e606449a36d26cc9a99431229e4efacdad. Wrong
author name. I'll apply it again later.

12 years agotools/kmod-depmod: fix aliasing warning
root [Fri, 6 Jan 2012 12:33:11 +0000 (13:33 +0100)] 
tools/kmod-depmod: fix aliasing warning

12 years agotools/modprobe: exit non-zero on module not found with --all
Dave Reisner [Fri, 6 Jan 2012 03:56:54 +0000 (22:56 -0500)] 
tools/modprobe: exit non-zero on module not found with --all

12 years agotools/modinfo: exit non-zero on module not found
Dave Reisner [Fri, 6 Jan 2012 03:56:53 +0000 (22:56 -0500)] 
tools/modinfo: exit non-zero on module not found

12 years agokmod 3 v3
Lucas De Marchi [Thu, 5 Jan 2012 00:27:58 +0000 (22:27 -0200)] 
kmod 3

12 years agotools: use basename in help message
Lucas De Marchi [Thu, 5 Jan 2012 10:15:51 +0000 (08:15 -0200)] 
tools: use basename in help message

12 years agolibkmod/hash: check for NULL before freeing hash
Dave Reisner [Thu, 5 Jan 2012 00:05:04 +0000 (19:05 -0500)] 
libkmod/hash: check for NULL before freeing hash

12 years agoAdd missing doc for function argument
Lucas De Marchi [Wed, 4 Jan 2012 23:07:59 +0000 (21:07 -0200)] 
Add missing doc for function argument

12 years agokmod-depmod: demote messages to WRN when non-critical files are missing
Lucas De Marchi [Wed, 4 Jan 2012 22:53:10 +0000 (20:53 -0200)] 
kmod-depmod: demote messages to WRN when non-critical files are missing

12 years agolibkmod: Fix casing in error output
Dave Reisner [Wed, 4 Jan 2012 15:59:49 +0000 (10:59 -0500)] 
libkmod: Fix casing in error output

12 years agotools: unify error verbiage and casing
Dave Reisner [Wed, 4 Jan 2012 15:41:50 +0000 (10:41 -0500)] 
tools: unify error verbiage and casing

Fix a typo and ensure that we always use "could not" instead of "Could
not" or the conjunction "couldn't".

12 years agobuild-sys: do not install kmod-* tools
Lucas De Marchi [Wed, 4 Jan 2012 10:58:19 +0000 (08:58 -0200)] 
build-sys: do not install kmod-* tools

12 years agofile: use log facilities
Lucas De Marchi [Wed, 4 Jan 2012 10:23:15 +0000 (08:23 -0200)] 
file: use log facilities

Don't clutter stderr with messages that might be useful in the log.

12 years agofile: take a weakref to ctx
Lucas De Marchi [Wed, 4 Jan 2012 10:19:34 +0000 (08:19 -0200)] 
file: take a weakref to ctx

12 years agoconfig: take a weakref to ctx
Lucas De Marchi [Wed, 4 Jan 2012 10:14:54 +0000 (08:14 -0200)] 
config: take a weakref to ctx

Commit "b6a4dfb config: save list of config paths with their timestamps"
removed the weakref to ctx. Add it back.

12 years agoAdd missing static const
Lucas De Marchi [Wed, 4 Jan 2012 10:00:45 +0000 (08:00 -0200)] 
Add missing static const

12 years agokmod-depmod: fix replacement of existing modules.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 18:14:57 +0000 (16:14 -0200)] 
kmod-depmod: fix replacement of existing modules.

We cannot create a kmod_module for existing module name, it will fail
due existing in the hash table "modules_by_name".

To avoid it, we first delete the existing module, if lower priority,
then add the new one.

kmod_module_new_from_path() is called only when the former module was
deleted or does not exist.

12 years agokmod-depmod: fix comparison of module priority.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 18:03:06 +0000 (16:03 -0200)] 
kmod-depmod: fix comparison of module priority.

This code was never tested, my bad!

 * the prefix should be ignored, as it is not stored in cfg_search/override.

 * baselen should not include '/'.

 * search length should not include '\0'.

 * override path should not include cfg->dirname prefix.

12 years agoutils/array: add array_remove_at()
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 17:58:24 +0000 (15:58 -0200)] 
utils/array: add array_remove_at()

remove array element at given position, will be used by depmod.

12 years agokmod-depmod: fix incorrect math finding out end of dirname.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 17:11:58 +0000 (15:11 -0200)] 
kmod-depmod: fix incorrect math finding out end of dirname.

12 years agokmod-depmod: document --config/-C in help output.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 17:06:08 +0000 (15:06 -0200)] 
kmod-depmod: document --config/-C in help output.

12 years agokmod-depmod: add missing trailing \n to log messages.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 17:04:34 +0000 (15:04 -0200)] 
kmod-depmod: add missing trailing \n to log messages.

12 years agoelf: zero *array when count is zero.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 16:53:15 +0000 (14:53 -0200)] 
elf: zero *array when count is zero.

12 years agolibkmod-file: refactor code to avoid ifdef mess.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 16:25:49 +0000 (14:25 -0200)] 
libkmod-file: refactor code to avoid ifdef mess.

Refactor code to use pointer to functions, avoiding the previous

Now comp_types defines a magic header to be checked (size and bytes),
with the associated load() and unload() operations. If a header
matches, their operations are used. Otherwise the regular file
operations (mmap/munmap) are used.

File descriptor close is managed by the common code if it's valid
(>=0). If some code steals the file descriptor (eg: gzopen), then they
must change file->fd to -1.

This way the code should be easier to extend and avoid bugs.

12 years agoutils/read_str_safe(): fix wrong behavior and bugs.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 16:22:05 +0000 (14:22 -0200)] 
utils/read_str_safe(): fix wrong behavior and bugs.

ouch, I did a mess in the original function, fix them:

 * on errors (read() < 0), continue reading after the done bytes, not
   at position 0.

 * read buflen - 1 bytes, so there is always room to store the
   trailing \0, as expected by user due behavior of snprintf(),
   fgets() and others.