From dc50efa15ee348f0c31a10611ace6ccba440a6a5 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 4 Sep 2023 19:58:22 +0000 Subject: actions/checkout @v3 -> @v4 --- .github/workflows/linux-build.yml | 2 +- .github/workflows/mac-build.yml | 4 ++-- .github/workflows/win-build.yml | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/linux-build.yml b/.github/workflows/linux-build.yml index 7dd86b9..26a8cd9 100644 --- a/.github/workflows/linux-build.yml +++ b/.github/workflows/linux-build.yml @@ -28,7 +28,7 @@ jobs: working-directory: unix steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Prepare run: | touch tclStubInit.c tclOOStubInit.c diff --git a/.github/workflows/mac-build.yml b/.github/workflows/mac-build.yml index 234fa95..1645bc7 100644 --- a/.github/workflows/mac-build.yml +++ b/.github/workflows/mac-build.yml @@ -18,7 +18,7 @@ jobs: working-directory: macosx steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Prepare run: | touch tclStubInit.c tclOOStubInit.c @@ -46,7 +46,7 @@ jobs: working-directory: unix steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Prepare run: | touch tclStubInit.c tclOOStubInit.c diff --git a/.github/workflows/win-build.yml b/.github/workflows/win-build.yml index bd6671c..29ea421 100644 --- a/.github/workflows/win-build.yml +++ b/.github/workflows/win-build.yml @@ -28,7 +28,7 @@ jobs: # Using powershell means we need to explicitly stop on failure steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Init MSVC uses: ilammy/msvc-dev-cmd@v1 - name: Build ${{ matrix.cfgopt }} @@ -71,7 +71,7 @@ jobs: msystem: MINGW64 install: git mingw-w64-x86_64-toolchain make - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Prepare run: | touch tclStubInit.c tclOOStubInit.c -- cgit v0.12 From 587746fd340f7935c895234785d43d0a9752d62f Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 4 Sep 2023 20:14:58 +0000 Subject: libtommath -> version 1.2.1 --- libtommath/appveyor.yml | 3 +-- libtommath/bn_mp_2expt.c | 4 ++++ libtommath/bn_mp_grow.c | 4 ++++ libtommath/bn_mp_init_size.c | 5 +++++ libtommath/bn_mp_mul_2d.c | 4 ++++ libtommath/bn_s_mp_mul_digs.c | 4 ++++ libtommath/bn_s_mp_mul_digs_fast.c | 4 ++++ libtommath/bn_s_mp_mul_high_digs.c | 4 ++++ libtommath/bn_s_mp_mul_high_digs_fast.c | 4 ++++ libtommath/changes.txt | 5 +++++ libtommath/makefile.unix | 2 +- libtommath/makefile_include.mk | 14 +++++--------- 12 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 1b3a7a3..d7dc0f5 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 -- cgit v0.12