[PATCH 04/21] sysdeps/{i386,x86_64}/mempcpy_chk.S: fix linknamespace for __mempcpy_chk

Noah Goldstein goldstein.w.n@gmail.com
Wed Jun 21 17:26:03 GMT 2023


On 6/21/23, Siddhesh Poyarekar <siddhesh@gotplt.org> wrote:
>
>
> On 2023-06-20 14:18, Frédéric Bérat wrote:
>> On i386 and x86_64, for libc.a specifically, __mempcpy_chk calls
>> mempcpy which leads POSIX routines to call non-POSIX mempcpy indirectly.
>>
>> This leads the linknamespace test to fail when glibc is built with
>> __FORTIFY_SOURCE=3.
>>
>> Since calling mempcpy doesn't bring any benefit for libc.a, directly
>> call __mempcpy instead.
>> ---
>
> LGTM as an independent fix.
>
> Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
>
>>   sysdeps/i386/mempcpy_chk.S   | 2 +-
>>   sysdeps/x86_64/mempcpy_chk.S | 2 +-
>>   2 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/sysdeps/i386/mempcpy_chk.S b/sysdeps/i386/mempcpy_chk.S
>> index 8b785bd9a5..1e9bf71bfb 100644
>> --- a/sysdeps/i386/mempcpy_chk.S
>> +++ b/sysdeps/i386/mempcpy_chk.S
>> @@ -28,6 +28,6 @@ ENTRY (__mempcpy_chk)
>>   	movl	12(%esp), %eax
>>   	cmpl	%eax, 16(%esp)
>>   	jb	__chk_fail
>> -	jmp	mempcpy
>> +	jmp	__mempcpy
>>   END (__mempcpy_chk)
>>   #endif
>> diff --git a/sysdeps/x86_64/mempcpy_chk.S b/sysdeps/x86_64/mempcpy_chk.S
>> index b1ddb02f78..b60ee4ff08 100644
>> --- a/sysdeps/x86_64/mempcpy_chk.S
>> +++ b/sysdeps/x86_64/mempcpy_chk.S
>> @@ -28,6 +28,6 @@
>>   ENTRY (__mempcpy_chk)
>>   	cmpq	%rdx, %rcx
>>   	jb	__chk_fail
>> -	jmp	mempcpy
>> +	jmp	__mempcpy

Does this get the right ifunc (or isa version isa version of built
with cpu-specific flags)?
>>   END (__mempcpy_chk)
>>   #endif
>


More information about the Libc-alpha mailing list