summaryrefslogtreecommitdiffstats
path: root/libtommath
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2023-09-04 20:42:54 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2023-09-04 20:42:54 (GMT)
commite1edaf47153bf88f19d2def15b703e510006fde7 (patch)
tree7c3c65b3fa803f49a762e41c98bdca1d480ba1df /libtommath
parent7e7bf74416917a600105863dcada6c95304f33c6 (diff)
parent11de34bf3a27c72a010eb7e510241a27027c4c54 (diff)
downloadtcl-e1edaf47153bf88f19d2def15b703e510006fde7.zip
tcl-e1edaf47153bf88f19d2def15b703e510006fde7.tar.gz
tcl-e1edaf47153bf88f19d2def15b703e510006fde7.tar.bz2
Merge 8.6
Diffstat (limited to 'libtommath')
-rw-r--r--libtommath/appveyor.yml3
-rw-r--r--libtommath/bn_mp_2expt.c4
-rw-r--r--libtommath/bn_mp_grow.c4
-rw-r--r--libtommath/bn_mp_init_size.c5
-rw-r--r--libtommath/bn_mp_mul_2d.c4
-rw-r--r--libtommath/bn_s_mp_mul_digs.c4
-rw-r--r--libtommath/bn_s_mp_mul_digs_fast.c4
-rw-r--r--libtommath/bn_s_mp_mul_high_digs.c4
-rw-r--r--libtommath/bn_s_mp_mul_high_digs_fast.c4
-rw-r--r--libtommath/changes.txt5
-rw-r--r--libtommath/makefile.unix2
-rw-r--r--libtommath/makefile_include.mk14
-rwxr-xr-xlibtommath/win64-arm/libtommath.dllbin69120 -> 69120 bytes
-rwxr-xr-xlibtommath/win64/libtommath.dllbin80896 -> 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
index 37bccf7..aab3034 100755
--- a/libtommath/win64-arm/libtommath.dll
+++ b/libtommath/win64-arm/libtommath.dll
Binary files differ
diff --git a/libtommath/win64/libtommath.dll b/libtommath/win64/libtommath.dll
index ace8fce..8a6b1d9 100755
--- a/libtommath/win64/libtommath.dll
+++ b/libtommath/win64/libtommath.dll
Binary files differ