The type of expression '1<<31' is signed int and this causes cppcheck to
issue the following warning.
src/gf_w32.c:681]: (error) Signed integer overflow for expression
'1<<31'.
Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
When a fatal error (unaligned memory etc.) is detected, jerasure
should assert(3) instead of exit(3) to give a chance to the calling
program to catch the exception and display a stack trace. Although it is
possible for gdb to display the stack trace and break on exit, libraries
are not usually expected to terminate the calling program in this way.
Signed-off-by: Loic Dachary <loic@dachary.org>
galois_init_default_field returns an errno(3) code in case of error
instead of exiting. This is handy when the caller needs to perform
cleanup or error reporting when an error occurs instead of exit(2).
The exit(2) based error handling is preserved in the static
galois_init() function which is used in galois.c instead and is based on
galois_init_default_field to avoid code duplication.
Signed-off-by: Loic Dachary <loic@dachary.org>
Fix for Coverity issue from Ceph project:
CID 1093211 (#1 of 1): Resource leak (RESOURCE_LEAK)
20. leaked_storage: Variable "ind_to_row" going out of scope leaks
the storage it points to.
CID 1093212 (#1 of 1): Resource leak (RESOURCE_LEAK)
20. leaked_storage: Variable "row_ids" going out of scope leaks the
storage it points to.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Check matrix for NULL before call talloc().
CID 1093213 (#1 of 1): Resource leak (RESOURCE_LEAK)
4. leaked_storage: Variable "bitmatrix" going out of scope
leaks the storage it points to.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
So that the application can initialize gfp_array and gfp_is_composite
instead of relying on initialization happening implicitly when the
multiply or xor functions are called. The init function can be called
once when the application guarantees thread safety. And the multiply and
xor functions can be called from multiple threads without risking races.
Signed-off-by: Loic Dachary <loic@dachary.org>
and reviewed by Kevin Greenan.
Updated README
Allow out-of-source builds. Quiet autogen.sh warnings.
Use AM_CPPFLAGS instead of INCLUDES. Use $(top_srcdir).
Add .gitignore to quiet git status.
Add project URL to AC_INIT.
Stop libtool from compiling files twice.
Have git ignore .deps/.
Don't override user CPPFLAGS.
(PIC options appear to be set already. INCLUDES already included.)
Clean configure.ac.
Make it closer to autoscan output.
Have autotools create INSTALL.
Use AC_MSG_FAILURE if GF-Complete not found.
Run autogen.sh.
(autoconf 2.69, automake 1.14.1, libtool 2.4.2)
Add some .gitignore files.
Fix configure cpuid unknown issue.
Move AX_EXT before AC_CHECK_LIB(gf_complete...) so that
-lgf_complete doesn't cause CPUID conftest compile to fail.
Don't check for internal gf_int.h header.
GF-Complete doesn't install it.
Quiet some autoreconf warnings.
INCLUDES is now AM_CPPFLAGS. Use single-argument AM_INIT_AUTOMAKE.
Remove some AC_REQUIRE whose conftest always failed.
Quiet configure warning.
(ARCH_64 doesn't appear to be used.)
CPUID "unknown" fix from upstream autoconf-archive.
Allow out-of-source builds. Use dependency tracking.
Remove config.h.in~.
Update ax_check_compile_flag.m4 from autoconf-archive.
Add .gitattributes.
Remove autoreconf-generated files.
Remove ACLOCAL_AMFLAGS.
See Automake 1.13 release notes.
Add files for 'make dist'.
Quiet some warnings.
getcwd() in <unistd.h>. Remove some vars.
Make headers compatible with C++.
Quiet some warnings.
Install additional headers in include/jerasure/.
Quiet some configure check internal failures.
Use new AX_REQUIRE_DEFINED instead of AC_REQUIRE, which expands
the macro and causes internal compile failure.
Fix file permissions.
Remove INTEL_SSE compiler defines.
(Can use HAVE_xxx or __xxx__ instead.)
Set default CFLAGS to '-g -O3 -Wall'.
Add more checks from autoscan.
Use AC_CONFIG_AUX_DIR([build-aux]).
Use processor time for timing.
Use clock() instead of gettimeofday().
Use common LDADD in Makefile.am.
Remove pre-autotools makefiles.
Ignore *.a. (Missed earlier.)
Quiet more warnings.
Document need for autoreconf -fi.
Removed README.nd and README.txt so changes don't need to be duplicated.
Remove autogen.sh.
Just use "autoreconf --force --install".