Re: ubsan: d-demangle.c:214 signed integer overflow

2020-11-13 Thread Jeff Law via Gcc-patches
On 9/4/20 7:34 AM, Alan Modra via Gcc-patches wrote: > So this one is on top of the previously posted patch. > > * d-demangle.c (string_need): Take a size_t n arg, and use size_t tem. > (string_append): Use size_t n. > (string_appendn, string_prependn): Take a size_t n arg. >

Re: ubsan: d-demangle.c:214 signed integer overflow

2020-09-07 Thread Ian Lance Taylor
Iain Buclaw writes: > Excerpts from Alan Modra's message of September 7, 2020 2:56 am: >> On Fri, Sep 04, 2020 at 06:23:10PM +0200, Iain Buclaw wrote: >>> If we're already using limits.h, I guess it should be fine to also add >>> >>> #define UINT_MAX ((unsigned) ~0U) >> >> Yes, except that I'll

Re: ubsan: d-demangle.c:214 signed integer overflow

2020-09-07 Thread Iain Buclaw via Gcc-patches
Excerpts from Alan Modra's message of September 7, 2020 2:56 am: > On Fri, Sep 04, 2020 at 06:23:10PM +0200, Iain Buclaw wrote: >> If we're already using limits.h, I guess it should be fine to also add >> >> #define UINT_MAX ((unsigned) ~0U) > > Yes, except that I'll use the simpler fall-back > #

Re: ubsan: d-demangle.c:214 signed integer overflow

2020-09-06 Thread Alan Modra via Gcc-patches
On Fri, Sep 04, 2020 at 06:23:10PM +0200, Iain Buclaw wrote: > If we're already using limits.h, I guess it should be fine to also add > > #define UINT_MAX ((unsigned) ~0U) Yes, except that I'll use the simpler fall-back #define UINT_MAX (~0U) The habit of using a cast for unsigned constants date

Re: ubsan: d-demangle.c:214 signed integer overflow

2020-09-04 Thread Iain Buclaw via Gcc-patches
Excerpts from Alan Modra's message of September 4, 2020 3:34 pm: > So this one is on top of the previously posted patch. > > * d-demangle.c (string_need): Take a size_t n arg, and use size_t tem. > (string_append): Use size_t n. > (string_appendn, string_prependn): Take a size_t

Re: ubsan: d-demangle.c:214 signed integer overflow

2020-09-04 Thread Alan Modra via Gcc-patches
So this one is on top of the previously posted patch. * d-demangle.c (string_need): Take a size_t n arg, and use size_t tem. (string_append): Use size_t n. (string_appendn, string_prependn): Take a size_t n arg. (TEMPLATE_LENGTH_UNKNOWN): Define as -1UL. * d

Re: ubsan: d-demangle.c:214 signed integer overflow

2020-09-04 Thread Iain Buclaw via Gcc-patches
Excerpts from Alan Modra's message of September 4, 2020 2:59 am: > On Thu, Sep 03, 2020 at 11:02:50PM +0200, Iain Buclaw wrote: >> Excerpts from Alan Modra's message of September 3, 2020 3:01 pm: >> > Running the libiberty testsuite >> > ./test-demangle < libiberty/testsuite/d-demangle-expected >>

Re: ubsan: d-demangle.c:214 signed integer overflow

2020-09-03 Thread Alan Modra via Gcc-patches
On Thu, Sep 03, 2020 at 11:02:50PM +0200, Iain Buclaw wrote: > Excerpts from Alan Modra's message of September 3, 2020 3:01 pm: > > Running the libiberty testsuite > > ./test-demangle < libiberty/testsuite/d-demangle-expected > > libiberty/d-demangle.c:214:14: runtime error: signed integer overflow

Re: ubsan: d-demangle.c:214 signed integer overflow

2020-09-03 Thread Iain Buclaw via Gcc-patches
Excerpts from Alan Modra's message of September 3, 2020 3:01 pm: > Running the libiberty testsuite > ./test-demangle < libiberty/testsuite/d-demangle-expected > libiberty/d-demangle.c:214:14: runtime error: signed integer overflow: > 922337203 * 10 cannot be represented in type 'long int' > > On

ubsan: d-demangle.c:214 signed integer overflow

2020-09-03 Thread Alan Modra via Gcc-patches
Running the libiberty testsuite ./test-demangle < libiberty/testsuite/d-demangle-expected libiberty/d-demangle.c:214:14: runtime error: signed integer overflow: 922337203 * 10 cannot be represented in type 'long int' On looking at silencing ubsan, I found a real bug in dlang_number. For a 32-bit