Use local labels in padlock.c

Fixes #3451

Signed-off-by: okhowang(王沛文) <okhowang@tencent.com>
This commit is contained in:
okhowang(王沛文) 2020-06-24 16:02:10 +08:00
parent 642a4ef0aa
commit 0c4bbda16a
2 changed files with 5 additions and 2 deletions

View File

@ -0,0 +1,3 @@
Bugfix
* Use local labels in mbedtls_padlock_has_support() to fix an invalid symbol redefinition if the function is inlined.
Reported in #3451 and fix contributed in #3452 by okhowang.

View File

@ -54,10 +54,10 @@ int mbedtls_padlock_has_support( int feature )
"cpuid \n\t" "cpuid \n\t"
"cmpl $0xC0000001, %%eax \n\t" "cmpl $0xC0000001, %%eax \n\t"
"movl $0, %%edx \n\t" "movl $0, %%edx \n\t"
"jb unsupported \n\t" "jb 1f \n\t"
"movl $0xC0000001, %%eax \n\t" "movl $0xC0000001, %%eax \n\t"
"cpuid \n\t" "cpuid \n\t"
"unsupported: \n\t" "1: \n\t"
"movl %%edx, %1 \n\t" "movl %%edx, %1 \n\t"
"movl %2, %%ebx \n\t" "movl %2, %%ebx \n\t"
: "=m" (ebx), "=m" (edx) : "=m" (ebx), "=m" (edx)