Package: libucl-dev
Version: 1.03-5
Memory errors are detected by valgrind in the following program:
// Compile: gcc test.c -g -o test.exe -lucl
#include <string.h>
#include <ucl/ucl.h>
#define COMPRESSED_LEN 1024
int main() {
const char* uncompressed = "test test test";
char compressed[COMPRESSED_LEN];
ucl_uint compressed_len = COMPRESSED_LEN;
ucl_progress_callback_p callback = NULL;
int level = 7;
struct ucl_compress_config_p conf = NULL;
ucl_uintp result = NULL;
ucl_nrv2b_99_compress(
uncompressed,
strlen(uncompressed),
compressed,
&compressed_len,
callback,
level,
conf,
result
);
return 0;
}
Valgrind output is as follows:
==1681== Memcheck, a memory error detector
==1681== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==1681== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for
copyright info
==1681== Command: ./test.exe
==1681==
==1681== Use of uninitialised value of size 8
==1681== at 0x4E38FF3: swd_accept (ucl_swd.ch:460)
==1681== by 0x4E396E6: find_match (ucl_mchw.ch:136)
==1681== by 0x4E3A63E: ucl_nrv2b_99_compress (n2_99.ch:590)
==1681== by 0x40080A: main (test.c:15)
==1681==
==1681== Use of uninitialised value of size 8
==1681== at 0x4E39013: swd_accept (ucl_swd.ch:461)
==1681== by 0x4E396E6: find_match (ucl_mchw.ch:136)
==1681== by 0x4E3A63E: ucl_nrv2b_99_compress (n2_99.ch:590)
==1681== by 0x40080A: main (test.c:15)
==1681==
==1681== Use of uninitialised value of size 8
==1681== at 0x4E39051: swd_accept (ucl_swd.ch:463)
==1681== by 0x4E396E6: find_match (ucl_mchw.ch:136)
==1681== by 0x4E3A63E: ucl_nrv2b_99_compress (n2_99.ch:590)
==1681== by 0x40080A: main (test.c:15)
==1681==
==1681== Use of uninitialised value of size 8
==1681== at 0x4E39091: swd_accept (ucl_swd.ch:470)
==1681== by 0x4E396E6: find_match (ucl_mchw.ch:136)
==1681== by 0x4E3A63E: ucl_nrv2b_99_compress (n2_99.ch:590)
==1681== by 0x40080A: main (test.c:15)
==1681==
==1681== Use of uninitialised value of size 8
==1681== at 0x4E393B4: swd_findbest (ucl_swd.ch:615)
==1681== by 0x4E39742: find_match (ucl_mchw.ch:150)
==1681== by 0x4E3A63E: ucl_nrv2b_99_compress (n2_99.ch:590)
==1681== by 0x40080A: main (test.c:15)
==1681==
==1681== Use of uninitialised value of size 8
==1681== at 0x4E393D2: swd_findbest (ucl_swd.ch:616)
==1681== by 0x4E39742: find_match (ucl_mchw.ch:150)
==1681== by 0x4E3A63E: ucl_nrv2b_99_compress (n2_99.ch:590)
==1681== by 0x40080A: main (test.c:15)
==1681==
==1681== Use of uninitialised value of size 8
==1681== at 0x4E39419: swd_findbest (ucl_swd.ch:620)
==1681== by 0x4E39742: find_match (ucl_mchw.ch:150)
==1681== by 0x4E3A63E: ucl_nrv2b_99_compress (n2_99.ch:590)
==1681== by 0x40080A: main (test.c:15)
==1681==
==1681== Use of uninitialised value of size 8
==1681== at 0x4E3959B: swd_findbest (ucl_swd.ch:671)
==1681== by 0x4E39742: find_match (ucl_mchw.ch:150)
==1681== by 0x4E3A63E: ucl_nrv2b_99_compress (n2_99.ch:590)
==1681== by 0x40080A: main (test.c:15)
==1681==
==1681==
==1681== HEAP SUMMARY:
==1681== in use at exit: 0 bytes in 0 blocks
==1681== total heap usage: 6 allocs, 6 frees, 809,216 bytes allocated
==1681==
==1681== All heap blocks were freed -- no leaks are possible
==1681==
==1681== For counts of detected and suppressed errors, rerun with: -v
==1681== Use --track-origins=yes to see where uninitialised values come from
==1681== ERROR SUMMARY: 11 errors from 8 contexts (suppressed: 0 from 0)
I am using Debian GNU/Linux 7.9, kernel 3.2.0-4-amd64 and libc6 2.19-7.