Commit Graph

18 Commits (master)

Author SHA1 Message Date
Brad Hubbard 31cd20f7f3 Resolve cppcheck Signed integer overflow error
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>
2017-04-10 17:47:45 +10:00
Loic Dachary 36008101d5 use assert(0) instead of exit(1)
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>
2014-12-15 12:08:37 +01:00
Loic Dachary 4fdbeeebe0 define galois_uninit_field
To free resources allocated by galois_init_default_field.

Signed-off-by: Loic Dachary <loic-201408@dachary.org>
2014-10-03 19:08:44 +02:00
Loic Dachary 1b30a37c9f add galois_init_default_field error code
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>
2014-06-08 18:59:00 +02:00
Danny Al-Gaaf a21b2733a9 jerasure.c: add more checks for talloc/malloc results
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2014-04-27 20:27:23 +02:00
Danny Al-Gaaf 31810e1fdc jerasure.c: add check for result of malloc()
Add check for bitmatrix and return NULL if malloc failed.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2014-04-27 18:56:52 +02:00
Danny Al-Gaaf b14af86424 jerasure.c: free memory before return in error case
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>
2014-04-22 20:52:07 +02:00
Danny Al-Gaaf 6d8fbc8b81 jerasure.c: fix memory leak in error case
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>
2014-04-22 20:36:32 +02:00
Loic Dachary 5c9577172c make galois_init_default_field(int w) extern
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>
2014-04-09 00:05:18 +02:00
David Glessner a1f2d201d8 Remove -O3, -fPIC, $(INCLUDES) from AM_CFLAGS.
They aren't needed, and can be harmful if they override user selection.
2014-03-31 21:08:55 -05:00
Loic Dachary cdc99aadc9 silence warning about bestrow used uninitialized
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-03-30 10:55:46 +02:00
David Glessner e79904ea00 This is the squashed pull request from David Glessner, squashed
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".
2014-03-28 08:34:46 -07:00
Loic Dachary d4730bfd7d add missing return value to functions that require it
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-03-06 01:38:29 +01:00
Loic Dachary 87f301084d remove unused variables
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-03-06 01:38:29 +01:00
Jim Plank be40b4e549 Revision 2.0 is ready for prime time! 2014-01-25 10:55:29 -05:00
Kevin Greenan 16838859dc Added code to not use gf-complete mult_by_one if region size is small (less than 16 bytes). 2013-12-27 20:56:16 -08:00
Kevin Greenan c4ab254bbc Do SIMD XOR, where possible! 2013-12-20 08:21:46 -08:00
Kevin Greenan 00a17c0a7a Setup autoconf to work with Jerasure 2013-12-04 23:08:08 -08:00