diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2023-09-04 20:42:54 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2023-09-04 20:42:54 (GMT) |
commit | e1edaf47153bf88f19d2def15b703e510006fde7 (patch) | |
tree | 7c3c65b3fa803f49a762e41c98bdca1d480ba1df /libtommath | |
parent | 7e7bf74416917a600105863dcada6c95304f33c6 (diff) | |
parent | 11de34bf3a27c72a010eb7e510241a27027c4c54 (diff) | |
download | tcl-e1edaf47153bf88f19d2def15b703e510006fde7.zip tcl-e1edaf47153bf88f19d2def15b703e510006fde7.tar.gz tcl-e1edaf47153bf88f19d2def15b703e510006fde7.tar.bz2 |
Merge 8.6
Diffstat (limited to 'libtommath')
-rw-r--r-- | libtommath/appveyor.yml | 3 | ||||
-rw-r--r-- | libtommath/bn_mp_2expt.c | 4 | ||||
-rw-r--r-- | libtommath/bn_mp_grow.c | 4 | ||||
-rw-r--r-- | libtommath/bn_mp_init_size.c | 5 | ||||
-rw-r--r-- | libtommath/bn_mp_mul_2d.c | 4 | ||||
-rw-r--r-- | libtommath/bn_s_mp_mul_digs.c | 4 | ||||
-rw-r--r-- | libtommath/bn_s_mp_mul_digs_fast.c | 4 | ||||
-rw-r--r-- | libtommath/bn_s_mp_mul_high_digs.c | 4 | ||||
-rw-r--r-- | libtommath/bn_s_mp_mul_high_digs_fast.c | 4 | ||||
-rw-r--r-- | libtommath/changes.txt | 5 | ||||
-rw-r--r-- | libtommath/makefile.unix | 2 | ||||
-rw-r--r-- | libtommath/makefile_include.mk | 14 | ||||
-rwxr-xr-x | libtommath/win64-arm/libtommath.dll | bin | 69120 -> 69120 bytes | |||
-rwxr-xr-x | libtommath/win64/libtommath.dll | bin | 80896 -> 80896 bytes |
14 files changed, 45 insertions, 12 deletions
diff --git a/libtommath/appveyor.yml b/libtommath/appveyor.yml index 08bb013..0a8e075 100644 --- a/libtommath/appveyor.yml +++ b/libtommath/appveyor.yml @@ -1,10 +1,9 @@ -version: 1.2.0-{build} +version: 1.2.1-{build} branches: only: - master - develop - /^release/ - - /^support/ - /^travis/ image: - Visual Studio 2019 diff --git a/libtommath/bn_mp_2expt.c b/libtommath/bn_mp_2expt.c index 0ae3df1..23de0c3 100644 --- a/libtommath/bn_mp_2expt.c +++ b/libtommath/bn_mp_2expt.c @@ -12,6 +12,10 @@ mp_err mp_2expt(mp_int *a, int b) { mp_err err; + if (b < 0) { + return MP_VAL; + } + /* zero a as per default */ mp_zero(a); diff --git a/libtommath/bn_mp_grow.c b/libtommath/bn_mp_grow.c index 9e904c5..2b16826 100644 --- a/libtommath/bn_mp_grow.c +++ b/libtommath/bn_mp_grow.c @@ -9,6 +9,10 @@ mp_err mp_grow(mp_int *a, int size) int i; mp_digit *tmp; + if (size < 0) { + return MP_VAL; + } + /* if the alloc size is smaller alloc more ram */ if (a->alloc < size) { /* reallocate the array a->dp diff --git a/libtommath/bn_mp_init_size.c b/libtommath/bn_mp_init_size.c index d622687..9957383 100644 --- a/libtommath/bn_mp_init_size.c +++ b/libtommath/bn_mp_init_size.c @@ -6,6 +6,11 @@ /* init an mp_init for a given size */ mp_err mp_init_size(mp_int *a, int size) { + + if (size < 0) { + return MP_VAL; + } + size = MP_MAX(MP_MIN_PREC, size); /* alloc mem */ diff --git a/libtommath/bn_mp_mul_2d.c b/libtommath/bn_mp_mul_2d.c index 87354de..bfeaf2e 100644 --- a/libtommath/bn_mp_mul_2d.c +++ b/libtommath/bn_mp_mul_2d.c @@ -9,6 +9,10 @@ mp_err mp_mul_2d(const mp_int *a, int b, mp_int *c) mp_digit d; mp_err err; + if (b < 0) { + return MP_VAL; + } + /* copy */ if (a != c) { if ((err = mp_copy(a, c)) != MP_OKAY) { diff --git a/libtommath/bn_s_mp_mul_digs.c b/libtommath/bn_s_mp_mul_digs.c index 64509d4..3682b49 100644 --- a/libtommath/bn_s_mp_mul_digs.c +++ b/libtommath/bn_s_mp_mul_digs.c @@ -16,6 +16,10 @@ mp_err s_mp_mul_digs(const mp_int *a, const mp_int *b, mp_int *c, int digs) mp_word r; mp_digit tmpx, *tmpt, *tmpy; + if (digs < 0) { + return MP_VAL; + } + /* can we use the fast multiplier? */ if ((digs < MP_WARRAY) && (MP_MIN(a->used, b->used) < MP_MAXFAST)) { diff --git a/libtommath/bn_s_mp_mul_digs_fast.c b/libtommath/bn_s_mp_mul_digs_fast.c index b2a287b..3c4176a 100644 --- a/libtommath/bn_s_mp_mul_digs_fast.c +++ b/libtommath/bn_s_mp_mul_digs_fast.c @@ -26,6 +26,10 @@ mp_err s_mp_mul_digs_fast(const mp_int *a, const mp_int *b, mp_int *c, int digs) mp_digit W[MP_WARRAY]; mp_word _W; + if (digs < 0) { + return MP_VAL; + } + /* grow the destination as required */ if (c->alloc < digs) { if ((err = mp_grow(c, digs)) != MP_OKAY) { diff --git a/libtommath/bn_s_mp_mul_high_digs.c b/libtommath/bn_s_mp_mul_high_digs.c index 2bb2a50..c9dd355 100644 --- a/libtommath/bn_s_mp_mul_high_digs.c +++ b/libtommath/bn_s_mp_mul_high_digs.c @@ -15,6 +15,10 @@ mp_err s_mp_mul_high_digs(const mp_int *a, const mp_int *b, mp_int *c, int digs) mp_word r; mp_digit tmpx, *tmpt, *tmpy; + if (digs < 0) { + return MP_VAL; + } + /* can we use the fast multiplier? */ if (MP_HAS(S_MP_MUL_HIGH_DIGS_FAST) && ((a->used + b->used + 1) < MP_WARRAY) diff --git a/libtommath/bn_s_mp_mul_high_digs_fast.c b/libtommath/bn_s_mp_mul_high_digs_fast.c index a0513b4..0796f72 100644 --- a/libtommath/bn_s_mp_mul_high_digs_fast.c +++ b/libtommath/bn_s_mp_mul_high_digs_fast.c @@ -19,6 +19,10 @@ mp_err s_mp_mul_high_digs_fast(const mp_int *a, const mp_int *b, mp_int *c, int mp_digit W[MP_WARRAY]; mp_word _W; + if (digs < 0) { + return MP_VAL; + } + /* grow the destination as required */ pa = a->used + b->used; if (c->alloc < pa) { diff --git a/libtommath/changes.txt b/libtommath/changes.txt index cc6736c..956cdd4 100644 --- a/libtommath/changes.txt +++ b/libtommath/changes.txt @@ -1,3 +1,8 @@ +Sep 04th, 2023 +v1.2.1 + -- Bugfix release because of potential integer overflow + c.f. PR #546 resp. CVE-2023-36328 + Oct 22nd, 2019 v1.2.0 -- A huge refactoring of the library happened - renaming, diff --git a/libtommath/makefile.unix b/libtommath/makefile.unix index 4cefc7e..9336da0 100644 --- a/libtommath/makefile.unix +++ b/libtommath/makefile.unix @@ -21,7 +21,7 @@ RANLIB = ranlib CFLAGS = -O2 LDFLAGS = -VERSION = 1.2.0 +VERSION = 1.2.1 #Compilation flags LTM_CFLAGS = -I. $(CFLAGS) diff --git a/libtommath/makefile_include.mk b/libtommath/makefile_include.mk index 452d37d..71f04dd 100644 --- a/libtommath/makefile_include.mk +++ b/libtommath/makefile_include.mk @@ -3,9 +3,9 @@ # #version of library -VERSION=1.2.0 -VERSION_PC=1.2.0 -VERSION_SO=3:0:2 +VERSION=1.2.1 +VERSION_PC=1.2.1 +VERSION_SO=3:1:2 PLATFORM := $(shell uname | sed -e 's/_.*//') @@ -116,10 +116,10 @@ endif # adjust coverage set ifneq ($(filter $(_ARCH), i386 i686 x86_64 amd64 ia64),) - COVERAGE = test timing + COVERAGE = test_standalone timing COVERAGE_APP = ./test && ./timing else - COVERAGE = test + COVERAGE = test_standalone COVERAGE_APP = ./test endif @@ -135,10 +135,6 @@ LIBPATH ?= $(PREFIX)/lib INCPATH ?= $(PREFIX)/include DATAPATH ?= $(PREFIX)/share/doc/libtommath/pdf -# build & run test-suite -check: test - ./test - #make the code coverage of the library # coverage: LTM_CFLAGS += -fprofile-arcs -ftest-coverage -DTIMING_NO_LOGS diff --git a/libtommath/win64-arm/libtommath.dll b/libtommath/win64-arm/libtommath.dll Binary files differindex 37bccf7..aab3034 100755 --- a/libtommath/win64-arm/libtommath.dll +++ b/libtommath/win64-arm/libtommath.dll diff --git a/libtommath/win64/libtommath.dll b/libtommath/win64/libtommath.dll Binary files differindex ace8fce..8a6b1d9 100755 --- a/libtommath/win64/libtommath.dll +++ b/libtommath/win64/libtommath.dll |