Lucas De Marchi [Tue, 3 Feb 2015 03:21:11 +0000 (01:21 -0200)]
travis: use kernel headers for testsuite
Install kernel headers and export KDIR variable to point to right dir.
Lucas De Marchi [Tue, 3 Feb 2015 07:17:10 +0000 (05:17 -0200)]
testsuite: convert test-init function to use mod-simple.ko
Lucas De Marchi [Tue, 3 Feb 2015 07:17:49 +0000 (05:17 -0200)]
build: let touch on directory as last step
We need to let these instructions in kmod to be the last executed ones.
Otherwise the subdirectory containing the modules could propagate up the
time access.
Lucas De Marchi [Tue, 3 Feb 2015 02:24:33 +0000 (00:24 -0200)]
testsuite: port test-dependencies to module-playground
Lucas De Marchi [Tue, 3 Feb 2015 01:55:56 +0000 (23:55 -0200)]
testsuite: make test-dependencies use DEFINE_TEST
It went missing from previous conversions.
Lucas De Marchi [Tue, 3 Feb 2015 00:35:02 +0000 (22:35 -0200)]
testsuite: use mod-simple.ko for search-order-same-prefix test
Lucas De Marchi [Tue, 3 Feb 2015 00:26:06 +0000 (22:26 -0200)]
testsuite: beef up module-playground in the build system
Instead of shipping pre-compiled module, this prepares the build system
to be able to compile the necessary modules from module-playground. This
preparations starts by replacing md5.ko with our own dummy
mod-simple.ko, built from source. It works by copying the modules to
their final location while preparing the rootfs.
Lucas De Marchi [Tue, 27 Jan 2015 01:31:04 +0000 (23:31 -0200)]
Update TODO
Caio Marcelo de Oliveira Filho [Mon, 26 Jan 2015 11:47:09 +0000 (09:47 -0200)]
testsuite: add tests for kmod_list
Some tests cover internal API that wasn't used
elsewhere. The choice here was to test and keep the
list implementation complete instead of removing it.
Lucas De Marchi [Mon, 26 Jan 2015 21:07:12 +0000 (19:07 -0200)]
Revert "build: enable LTO and _FORTIFY_SOURCE with optimization"
This reverts commit
27bcc9111b63e94d091c3fa47e81fe52b806cd3e.
Let the distro decide about this flag. It's relatively recent and
doesn't work well with gcc 4.[678] making the testsuite to fail.
Lucas De Marchi [Mon, 26 Jan 2015 01:54:05 +0000 (23:54 -0200)]
Fix uninitialized warning
Initialize variable to NULL before calling kmod_module_new_from_lookup().
libkmod/libkmod-module.c: In function 'kmod_module_new_from_lookup.part.4.constprop':
libkmod/libkmod-module.c:192:8: warning: 'depmod' may be used uninitialized in this function [-Wmaybe-uninitialized]
list = kmod_list_prepend(list, depmod);
^
libkmod/libkmod-module.c:173:23: note: 'depmod' was declared here
struct kmod_module *depmod;
Lucas De Marchi [Mon, 26 Jan 2015 01:29:50 +0000 (23:29 -0200)]
build: pass --no-undefined to linker
Do not allow undefined symbols.
Lucas De Marchi [Mon, 26 Jan 2015 01:28:46 +0000 (23:28 -0200)]
build: enable LTO and _FORTIFY_SOURCE with optimization
If building with optimization enabled, enable LTO.
Caio Marcelo de Oliveira Filho [Wed, 21 Jan 2015 11:37:23 +0000 (09:37 -0200)]
util: remove dead code in freadline_wrapped
Each loop iteration starts with 'i < size'. When i is changed
the invariant is kept by checking if 'i == size' and growing the
buffer.
Caio Marcelo de Oliveira Filho [Wed, 21 Jan 2015 11:37:22 +0000 (09:37 -0200)]
testsuite: add more input cases to freadline_wrapped test
Caio Marcelo de Oliveira Filho [Wed, 21 Jan 2015 11:37:21 +0000 (09:37 -0200)]
testsuite: add test for growing then shrinking a hash
Caio Marcelo de Oliveira Filho [Wed, 21 Jan 2015 11:37:20 +0000 (09:37 -0200)]
testsuite: add test for hash_add_unique
Lucas De Marchi [Wed, 14 Jan 2015 19:25:45 +0000 (17:25 -0200)]
testsuite: improve coverage of shared/util.h
Add tests to improve coverage of shared/util.h functions.
Lucas De Marchi [Wed, 14 Jan 2015 18:28:16 +0000 (16:28 -0200)]
testsuite: improve assert report
Lucas De Marchi [Wed, 14 Jan 2015 16:22:23 +0000 (14:22 -0200)]
tools: prefer the use of streq()
Lucas De Marchi [Wed, 14 Jan 2015 16:22:09 +0000 (14:22 -0200)]
testsuite: prefer the use of streq()
Lucas De Marchi [Wed, 14 Jan 2015 16:08:56 +0000 (14:08 -0200)]
testsuite: test kmod_module_remove_module for failure
Lucas De Marchi [Wed, 14 Jan 2015 16:31:34 +0000 (14:31 -0200)]
shared: add STRINGFY macro
Lucas De Marchi [Wed, 14 Jan 2015 16:05:24 +0000 (14:05 -0200)]
testsuite: fix retcodes parsing
It was not saving _modules in modules and thus all check were falling in
the fallback "consider a success if module is not in the list". Also the
name check wasn't right: replace with streq().
The parsing could be better implemented, but this is left for later.
Lucas De Marchi [Wed, 14 Jan 2015 14:28:02 +0000 (12:28 -0200)]
tools: kmod: use streq
Lucas De Marchi [Wed, 14 Jan 2015 14:33:10 +0000 (12:33 -0200)]
CODING-STYLE: add include order
Caio Marcelo de Oliveira Filho [Wed, 14 Jan 2015 14:02:16 +0000 (12:02 -0200)]
tools: kmod: break iteration once a command is executed
Lucas De Marchi [Wed, 14 Jan 2015 13:10:53 +0000 (11:10 -0200)]
Update TODO
Lucas De Marchi [Thu, 8 Jan 2015 19:10:18 +0000 (17:10 -0200)]
testsuite: add test for array_pop()
Lucas De Marchi [Wed, 7 Jan 2015 21:17:15 +0000 (19:17 -0200)]
build-sys: integrate coverage report
Just pass --enable-coverage to configure and then "make coverage" to
have the coverage report at coverage dir.
Lucas De Marchi [Wed, 7 Jan 2015 21:14:20 +0000 (19:14 -0200)]
testsuite: do not overrid paths inside build
If we are accessing a file inside the build directory we should really
not trap the path. Right now this isn't important because we never do
such accesses. However it will be needed when gcov is integrated because
it dumps files to the same place where the binaries are located.
Lucas De Marchi [Fri, 2 Jan 2015 18:32:03 +0000 (16:32 -0200)]
build-sys: rename cflags/ldflags variable
Not all of them are for warnings or gc.
Lucas De Marchi [Fri, 2 Jan 2015 15:10:52 +0000 (13:10 -0200)]
Fix include in python bindings
Prefix the include of libkmod in python bindings.
Lucas De Marchi [Fri, 2 Jan 2015 14:44:59 +0000 (12:44 -0200)]
libkmod-elf: Remove unused variables
libkmod/libkmod-elf.c:52:34: warning: unused variable 'native_endianess'
[-Wunused-const-variable]
static const enum kmod_elf_class native_endianess = KMOD_ELF_LSB;
Lucas De Marchi [Fri, 2 Jan 2015 14:38:27 +0000 (12:38 -0200)]
Fix includes after change to build-sys
Make the includes be libkmod/libkmod.h for code outside of library. This
fixes the broken build after 1315123 ('build-sys: Don't add libkmod
subdirectory to include path').
Lucas De Marchi [Fri, 26 Dec 2014 01:32:03 +0000 (23:32 -0200)]
Remove FSF mailing address
It has changed in the past, and these days, anyone can get a copy of the
LGPL via the web rather than by post.
Like 657a122 (Remove FSF mailing address) in libabc by Josh Tripplet,
but let the FSF website in which the license can be found.
Lucas De Marchi [Fri, 26 Dec 2014 01:12:22 +0000 (23:12 -0200)]
build-sys: set -e separately, rather than putting -e in the shebang line
Like a008d76 (autogen.sh: set -e separately, rather than putting -e in
the shebang line) in libabc by Josh Triplett.
Lucas De Marchi [Fri, 26 Dec 2014 01:11:04 +0000 (23:11 -0200)]
build-sys: Don't define LIBEXECDIR
Like b2fd181 (Makefile.am: Don't define LIBEXECDIR) in libabc by Josh
Triplett.
Lucas De Marchi [Fri, 26 Dec 2014 01:07:48 +0000 (23:07 -0200)]
build-sys: Don't add libkmod subdirectory to include path
Like 05437b8 (Makefile.am: Don't add abc subdirectory to include path)
in libabc by Josh Triplett.
Mike Auty [Fri, 5 Dec 2014 00:49:13 +0000 (00:49 +0000)]
build: Do not force diagnostics-color flag
The -fdiagnostics-color flag is only available on GCC >= 4.9, for
older versions this could raise an error in certain circumstances
(such as when using ccache). Instead, since -fdiagnostic-color=auto
by default in gcc-4.9, simply set the required environment variable
to the default one if it's undefined.
Based mostly on the systemd commit
f44541bc by Michal Schmidt.
Lucas De Marchi [Sat, 13 Dec 2014 13:55:05 +0000 (11:55 -0200)]
README: move mailing list information to top
It seems people are missing the information about the mailing list, so
let's move it to the top in hope it's more visible.
Natanael Copa [Mon, 17 Nov 2014 08:36:29 +0000 (09:36 +0100)]
util: fix build on systems missing strndupa
we need include shared/missing.h to be able to compile on sysmtes that
lacks strndupa.
Lucas De Marchi [Sun, 16 Nov 2014 12:37:45 +0000 (10:37 -0200)]
NEWS: Fix typos
Lucas De Marchi [Sun, 16 Nov 2014 12:24:50 +0000 (10:24 -0200)]
kmod 19
Lucas De Marchi [Tue, 28 Oct 2014 03:58:11 +0000 (01:58 -0200)]
libkmod-index: move comment to include the includes
Lucas De Marchi [Tue, 28 Oct 2014 03:56:42 +0000 (01:56 -0200)]
libkmod-index: remove invalid comment
Lucas De Marchi [Tue, 28 Oct 2014 03:52:49 +0000 (01:52 -0200)]
depmod: point to documentation in libkmod
Instead of repeating all documentation, point to the documentation
available in libkmod-index.c
This also removes INDEX_PRIORITY_MIN that was not being used.
Lucas De Marchi [Tue, 28 Oct 2014 03:47:50 +0000 (01:47 -0200)]
libkmod-index: keep index and comments in .c
Just like other source files, keep the index and comments in the source
file rather than the header.
This also removes INDEX_PRIORITY_MIN that was never being used.
Tom Gundersen [Mon, 27 Oct 2014 16:55:03 +0000 (17:55 +0100)]
static-nodes: indicate that creation of static nodes should only happen at boot
udev will only manage static nodes that exist at the time udev is started, so
creating static nodes later on will likely not behave as expected. In
particular, recreating the static nodes at run-time will reset any permissions
udev may have applied to the nodes at boot.
See <https://bugzilla.redhat.com/show_bug.cgi?id=1147248> and the discussion
following <http://permalink.gmane.org/gmane.comp.sysutils.systemd.devel/23795>.
Note that this requires (the yet to be released) systemd v217 or a backport
of systemd patch
8c94052ee543c3598a3c7b0c46688150aa2c6168.
Lucas De Marchi [Fri, 17 Oct 2014 00:39:33 +0000 (21:39 -0300)]
strbuf: make strbuf_pushchars() a little less dumb
Do not push one char at a time. We have strlen() and memcpy() to rely
on.
Lucas De Marchi [Fri, 17 Oct 2014 00:22:32 +0000 (21:22 -0300)]
strbuf: do not calculate next step in size on all calls
We only need to check if the new size is less or equal than the current
size. We don't really need to calculate the next step.
Lucas De Marchi [Fri, 17 Oct 2014 00:02:13 +0000 (21:02 -0300)]
strbuf: reduce default buffer size
Using 2048 as buffer sizer for strbuf is a bit exaggerated. strbuf is
used much more when we are not using mmapped indexes, but it's used for
mmapped when for example searching for an alias. A quick and dirty hack
to output the size of our strbufs is to print buf->used inside
strbuf_str(). Doing this and creating some statistics with:
while read xxx alias xxx; do
tools/modprobe -R "$alias" > /dev/null;
done < /lib/modules/$(uname -r)/modules.alias 2>&1 | \
Rscript -e 'summary (as.numeric (readLines ("stdin")))'
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
1.00 29.00 31.00 31.55 38.00 92.00 26
So, reduce the step to 128, which is still greater than the maximum in
these cases. In the worst case this can only create a few calls to
realloc(), while keeping the memory footprint low for the common cases.
Lucas De Marchi [Mon, 13 Oct 2014 21:42:01 +0000 (18:42 -0300)]
testsuite: add tests for strbuf
Lucas De Marchi [Sat, 11 Oct 2014 16:25:51 +0000 (13:25 -0300)]
shared: rename prefixes of strbuf functions
Use strbuf_ prefix instead of buf_.
Lucas De Marchi [Sat, 11 Oct 2014 16:03:21 +0000 (13:03 -0300)]
Move strbuf implementation to shared/
Just move the strbuf-like implementation to shared/. No renames were
made yet to avoid cluttering the diff. It will come in a separate patch.
Lucas De Marchi [Thu, 9 Oct 2014 17:29:04 +0000 (14:29 -0300)]
testsuite: remove now unused array of tests
Remove the arrays and let each test with a guaranteed unique name.
Lucas De Marchi [Thu, 9 Oct 2014 17:14:58 +0000 (14:14 -0300)]
testsuite: use a section to put tests in instead of array
Intead of having to declare an array of tests, tweak the definition of
DEFINE_TEST and TESTSUITE_MAIN so they know the tests are put in a
particular section of the ELF file.
This avoids the mistake of adding a test and forgetting to add it to the
array. Now once a test is defined, it's ready to run, so one less step
to define new tests.
The removal of the arrays is left for another patch so not to clutter
the diff on this one.
Lucas De Marchi [Thu, 9 Oct 2014 16:00:30 +0000 (13:00 -0300)]
Move static keyword to DEFINE_TEST macro
Lucas De Marchi [Thu, 9 Oct 2014 14:07:33 +0000 (11:07 -0300)]
libkmod: remove unused inline functions
libkmod/libkmod-list.c:39:33: warning: unused function 'list_node_next' [-Wunused-function]
static inline struct list_node *list_node_next(const struct list_node *node)
^
libkmod/libkmod-list.c:47:33: warning: unused function 'list_node_prev' [-Wunused-function]
static inline struct list_node *list_node_prev(const struct list_node *node)
^
It doesn't really matter in the end result since the compiler won't
generate any code for it. But let's keep it clean. It wasn't needed
until now, so probably it won't be anymore.
Lucas De Marchi [Thu, 9 Oct 2014 14:03:29 +0000 (11:03 -0300)]
Change parameter from int to char
It's a char not an int.
Lucas De Marchi [Thu, 9 Oct 2014 13:59:08 +0000 (10:59 -0300)]
Log error on failed underscores(), moving it to shared/
Move underscores() to shared/. It's the same as alias_normalize(), but
it rather operates in place, with the same string being passed.
The difference now that it's in shared/ is that it's a non-logging
function.
This makes us a little bit more verbose: we don't accept partially
correct module and aliases names in kcmdline and in configuration files.
We log an error instead.
Lucas De Marchi [Thu, 9 Oct 2014 04:20:35 +0000 (01:20 -0300)]
build-sys: rename libkmod-util convenience library
Now that all source code from libkmod-util has been moved to shared/
directory, rename also the convenience library to libshared.
Lucas De Marchi [Thu, 9 Oct 2014 04:14:16 +0000 (01:14 -0300)]
Move remaining functions from libkmod-util to shared
Lucas De Marchi [Thu, 9 Oct 2014 03:54:29 +0000 (00:54 -0300)]
depmod: use alias_normalize() from shared
Remove underscores2() function which is essentially the same as
alias_normalize() and the latter, which is now in shared/.
Lucas De Marchi [Thu, 9 Oct 2014 03:43:01 +0000 (00:43 -0300)]
Move alias_normalize() to shared
Lucas De Marchi [Thu, 9 Oct 2014 03:01:45 +0000 (00:01 -0300)]
Do not rely on prio_to_str() being always inline
This function was declared as always-inline so there was not really a
problem in returning prioname, that could possibly point to the local
buf[] variable.
However static analysis tools are often confused about this and being
always-inline was just a workaround to make it work.
So, let's move the buffer to the caller. We have only 2 callers so it
doesn't matter much. This always reduce the size of log.o, since now the
function is not inlined anymore. Below is the size for "-g -O2" with
gcc:
before:
text data bss dec hex filename
1325 4 1 1330 532 tools/log.o
after:
text data bss dec hex filename
1171 4 1 1176 498 tools/log.o
Lucas De Marchi [Wed, 8 Oct 2014 17:33:42 +0000 (14:33 -0300)]
Do not export array of kmod extensions
The only user outside of libkmod-util is depmod, which really only needs
to get the string for the extension of uncompressed modules. It doesn't
need to access the array itself.
Lucas De Marchi [Wed, 8 Oct 2014 04:12:15 +0000 (01:12 -0300)]
testsuite: add tests for array implementation
Lucas De Marchi [Wed, 8 Oct 2014 02:23:11 +0000 (23:23 -0300)]
Clarify what licences apply where
This doesn't change any license, just clarifies what's licensed under
LGPL and what's under GPL.
Lucas De Marchi [Fri, 3 Oct 2014 06:25:06 +0000 (03:25 -0300)]
Rename getline_wrapped() to freadline_wrapped()
Lucas De Marchi [Fri, 3 Oct 2014 05:03:55 +0000 (02:03 -0300)]
Prefer inttypes.h over stdint.h
Lucas De Marchi [Fri, 3 Oct 2014 04:41:42 +0000 (01:41 -0300)]
Reorder and reorganize header files
Let the includes in the following order:
< system headers >
< libkmod >
< tool >
< local headers >
Lucas De Marchi [Fri, 3 Oct 2014 03:29:18 +0000 (00:29 -0300)]
Move hash implementation to shared directory
Lucas De Marchi [Fri, 3 Oct 2014 03:22:36 +0000 (00:22 -0300)]
Move array implementation to shared directory
Lucas De Marchi [Fri, 3 Oct 2014 03:13:49 +0000 (00:13 -0300)]
build-sys: normalize line breaks
Break lines earlier, as it's already done in some places and use only 1
tab to avoid reaching the column limit.
Lucas De Marchi [Fri, 3 Oct 2014 03:01:35 +0000 (00:01 -0300)]
Move generic util functions to shared directory
Lucas De Marchi [Fri, 3 Oct 2014 01:08:47 +0000 (22:08 -0300)]
Move missing.h to shared directory
Lucas De Marchi [Fri, 3 Oct 2014 01:03:19 +0000 (22:03 -0300)]
Move macro.h to shared directory
It's not really related to libkmod, so move it to a directory in which
we keep common stuff.
Randy MacLeod [Mon, 29 Sep 2014 19:18:04 +0000 (21:18 +0200)]
Add back-up implementation of be32toh()
Older systems may not have the be32toh function defined. Check for this
and fall back to checking the endianness and calling bswap_32 directly
if needed. This works on both old and new systems.
[Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>:
address comments raised by Lucas De Marchi [1], update commit message]
[1] http://www.spinics.net/lists/linux-modules/msg01129.html
Lucas De Marchi [Tue, 23 Sep 2014 03:21:53 +0000 (00:21 -0300)]
Update TODO
Marco d'Itri [Wed, 17 Sep 2014 03:12:27 +0000 (05:12 +0200)]
Add the man page for kmod(8)
Marco d'Itri [Wed, 17 Sep 2014 03:12:26 +0000 (05:12 +0200)]
Document depmod --show in depmod(8)
Holger Obermaier [Thu, 4 Sep 2014 12:38:16 +0000 (14:38 +0200)]
libkmod-index.c: Fix error message
Cristian RodrÃguez [Thu, 19 Jun 2014 00:51:00 +0000 (20:51 -0400)]
Add missing O_CLOEXEC in kmod_module_get_size()
Lucas De Marchi [Sat, 14 Jun 2014 15:46:38 +0000 (12:46 -0300)]
kmod 18
Lucas De Marchi [Sat, 14 Jun 2014 14:14:58 +0000 (11:14 -0300)]
testsuite: Fix macro missing format string
Lucas De Marchi [Fri, 6 Jun 2014 05:22:43 +0000 (02:22 -0300)]
testsuite: Add basic tests for hash implementation
Far from complete, but already covers all internal APIs.
Lucas De Marchi [Fri, 6 Jun 2014 05:19:01 +0000 (02:19 -0300)]
testsuite: Add assert_return
Add assert_return to use in testcases instead of assert. The issues
with assert are:
1) It's disabled when NDEBUG is defined
2) Even if it's well supported by testsuite (the parent will
report the child died) it can't output any meaningful
error message
Lucas De Marchi [Thu, 5 Jun 2014 20:54:00 +0000 (17:54 -0300)]
testsuite: separate testcases on log
Lucas De Marchi [Fri, 30 May 2014 13:26:17 +0000 (10:26 -0300)]
testsuite: check for correct error message in detect-loop
Lucas De Marchi [Fri, 30 May 2014 13:23:05 +0000 (10:23 -0300)]
testsuite: Fix expected_fail parsing
If a test has expected_fail=true, it means the return code must be
different from 0 *and* the outputs must match. This way it's possible to
check if the error messages are printed as they should.
Lucas De Marchi [Fri, 30 May 2014 13:20:19 +0000 (10:20 -0300)]
testsuite: Add braces
Lucas De Marchi [Fri, 30 May 2014 12:38:26 +0000 (09:38 -0300)]
depmod: Add better error messages when facing loops
Since now depmod fails when there are module loops, let's at least give
better error messages, printing the loops we found. Since we may have
more than 1 loop, just printing the modules that are in loop is not
very clear.
Assuming as an example 2 independent loops, this is how the new messages
compare to the old ones:
Before:
depmod: ERROR: Found 5 modules in dependency cycles!
depmod: ERROR: /tmp/test-kmod//lib/modules/3.14.4-1-ARCH/kernel/moduleE.ko in dependency cycle!
depmod: ERROR: /tmp/test-kmod//lib/modules/3.14.4-1-ARCH/kernel/moduleB.ko in dependency cycle!
depmod: ERROR: /tmp/test-kmod//lib/modules/3.14.4-1-ARCH/kernel/moduleC.ko in dependency cycle!
depmod: ERROR: /tmp/test-kmod//lib/modules/3.14.4-1-ARCH/kernel/moduleD.ko in dependency cycle!
depmod: ERROR: /tmp/test-kmod//lib/modules/3.14.4-1-ARCH/kernel/moduleA.ko in dependency cycle!
After:
depmod: ERROR: Found 5 modules in dependency cycles!
depmod: ERROR: Cycle detected: moduleE -> moduleD -> moduleE
depmod: ERROR: Cycle detected: moduleB -> moduleC -> moduleA -> moduleB
Lucas De Marchi [Fri, 30 May 2014 12:36:21 +0000 (09:36 -0300)]
testsuite: add test to fail depmod on module loops
Lucas De Marchi [Fri, 30 May 2014 12:01:24 +0000 (09:01 -0300)]
depmod: Rename variable to clarify its meaning
In mod->modnamelen we were actually including the '\0', i.e.
strlen(modname) + 1. So rename it to modnamesz and add a comment in
depmod_module_is_higher_priority() to notice why it's correct since the
new one is really using strlen(modname).
Lukas Anzinger [Sun, 18 May 2014 16:40:19 +0000 (18:40 +0200)]
Fix use-after-free in hash implementation.
If a value is added to the hash under a key that already exists the new value
replaces the old value for that key. Since key can be a pointer to data that
is part of value and freed by hash->free_value(), the key must be also
replaced and not only the value. Otherwise key potentially points to freed data.
Leandro Pereira [Tue, 29 Apr 2014 00:04:48 +0000 (21:04 -0300)]
Close /sys/module/$NAME directory if opening /proc/module fails.
Leandro Pereira [Tue, 29 Apr 2014 00:02:45 +0000 (21:02 -0300)]
Free abspath if kmod_module_new_from_path() fails.
Leandro Pereira [Tue, 29 Apr 2014 00:01:48 +0000 (21:01 -0300)]
Free realnames if kmod_lookup_alias_from_alias_bin() fails
Leandro Pereira [Mon, 28 Apr 2014 23:47:49 +0000 (20:47 -0300)]
Ensure read_long() reads the correct number of bytes from the index