Re: [PATCH] libc/stdlib: Fix build failure in nano_calloc

Claudio via Newlib <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
Please, stop to send mail ... Thanks

Il 13 agosto 2020 10:01:12 CEST, Corinna Vinschen via Newlib <[email protected]> ha scritto:
>On Aug 12 15:33, Craig Blackmore wrote:
>> commit 588a5e1ddebdf6d74391c7409680ea20e050c0e1 added a non-reentrant
>> call to nano_malloc which causes a build failure if INTERNAL_NEWLIB
>is
>> defined.
>> 
>> Here is a snippet of the error:
>> 
>> In file included from
>.../newlib/newlib/libc/stdlib/nano-mallocr.c:38:
>> .../newlib/newlib/libc/include/malloc.h:42:25: note: expected 'struct
>_reent *' but argument is of type 'ptrdiff_t' {aka 'int'}
>>    42 | extern void *_malloc_r (struct _reent *, size_t);
>>       |                         ^~~~~~~~~~~~~~~
>> .../newlib/newlib/libc/stdlib/nano-mallocr.c:67:22: error: too few
>arguments to function '_malloc_r'
>>    67 | #define nano_malloc  _malloc_r
>>       |                      ^~~~~~~~~
>> .../newlib/newlib/libc/stdlib/nano-mallocr.c:456:11: note: in
>expansion of macro 'nano_malloc'
>>   456 |     mem = nano_malloc(bytes);
>>       |           ^~~~~~~~~~~
>> In file included from
>.../newlib/newlib/libc/stdlib/nano-mallocr.c:38:
>> .../newlib/newlib/libc/include/malloc.h:42:14: note: declared here
>>    42 | extern void *_malloc_r (struct _reent *, size_t);
>>       |              ^~~~~~~~~
>> .../newlib/newlib/libc/stdlib/nano-mallocr.c:43: warning: "assert"
>redefined
>>    43 | #define assert(x) ((void)0)
>>       |
>> 
>> This patch adds a missing RCALL to the args when calling nano_malloc
>> from nano_calloc, so that if the call is reentrant, reent_ptr is
>passed
>> as the first argument.
>> 
>> The variable `bytes` (also added in 588a5e1d) has been changed from a
>> `ptrdiff_t` to `malloc_size_t` as it does not need to be signed. It
>is
>> used to store the product of two unsigned malloc_size_t variables and
>> then iff there was no overflow is it passed to malloc and memset
>which
>> both expect size_t which is unsigned.
>> 
>> Signed-off-by: Craig Blackmore <[email protected]>
>> ---
>>  newlib/libc/stdlib/nano-mallocr.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>
>Pushed.
>
>
>Thanks,
>Corinna
>
>-- 
>Corinna Vinschen
>Cygwin Maintainer
>Red Hat


Inviato dall'app Tiscali Mail.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.