aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorokhowang(王沛文) <okhowang@tencent.com>2020-06-24 16:02:10 +0800
committerokhowang(王沛文) <okhowang@tencent.com>2020-07-04 01:43:41 +0800
commit0c4bbda16abae83b5365a1ddd50625f54586b147 (patch)
tree54ad673e1186b7bd12512337521d00ae7ed03f1e
parent642a4ef0aa2e56a287f39efe57cffd25a409e6a8 (diff)
downloadmbed-tls-0c4bbda16abae83b5365a1ddd50625f54586b147.tar.gz
Use local labels in padlock.c
Fixes #3451 Signed-off-by: okhowang(王沛文) <okhowang@tencent.com>
-rw-r--r--ChangeLog.d/bugfix_PR3452.txt3
-rw-r--r--library/padlock.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/ChangeLog.d/bugfix_PR3452.txt b/ChangeLog.d/bugfix_PR3452.txt
new file mode 100644
index 000000000..acf593eb8
--- /dev/null
+++ b/ChangeLog.d/bugfix_PR3452.txt
@@ -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.
diff --git a/library/padlock.c b/library/padlock.c
index 887a386e8..96463b90b 100644
--- a/library/padlock.c
+++ b/library/padlock.c
@@ -54,10 +54,10 @@ int mbedtls_padlock_has_support( int feature )
"cpuid \n\t"
"cmpl $0xC0000001, %%eax \n\t"
"movl $0, %%edx \n\t"
- "jb unsupported \n\t"
+ "jb 1f \n\t"
"movl $0xC0000001, %%eax \n\t"
"cpuid \n\t"
- "unsupported: \n\t"
+ "1: \n\t"
"movl %%edx, %1 \n\t"
"movl %2, %%ebx \n\t"
: "=m" (ebx), "=m" (edx)