This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.17-648-gd842b14
- From: mshawcroft at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 12 May 2013 17:10:48 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.17-648-gd842b14
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via d842b1440dc2adc84387b460d4ed536042dd7322 (commit)
from 601a3a5fd5d2ae7ddef9fb8d742bdef512a7dd0f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=d842b1440dc2adc84387b460d4ed536042dd7322
commit d842b1440dc2adc84387b460d4ed536042dd7322
Author: Marcus Shawcroft <marcus.shawcroft@linaro.org>
Date: Sun May 12 18:09:33 2013 +0100
[AArch64] Fix out of range branch from ioctl() and clone()
2013-05-12 Marcus Shawcroft <marcus.shawcroft@linaro.org>
* sysdeps/unix/sysv/linux/aarch64/clone.S (__clone):
Do not call sycall_error directly with a confitional branch.
* sysdeps/unix/sysv/linux/aarch64/ioctl.S (__ioctl):
Do not call sycall_error directly with a confitional branch.
diff --git a/ports/ChangeLog.aarch64 b/ports/ChangeLog.aarch64
index f01388f..a611ac2 100644
--- a/ports/ChangeLog.aarch64
+++ b/ports/ChangeLog.aarch64
@@ -1,3 +1,11 @@
+2013-05-12 Marcus Shawcroft <marcus.shawcroft@linaro.org>
+
+ * sysdeps/unix/sysv/linux/aarch64/clone.S (__clone):
+ Do not call sycall_error directly with a confitional branch.
+
+ * sysdeps/unix/sysv/linux/aarch64/ioctl.S (__ioctl):
+ Do not call sycall_error directly with a confitional branch.
+
2013-03-19 Andreas Schwab <schwab@suse.de>
* sysdeps/unix/sysv/linux/aarch64/configure.in: Set
diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/clone.S b/ports/sysdeps/unix/sysv/linux/aarch64/clone.S
index 999ecf2..b359e6e 100644
--- a/ports/sysdeps/unix/sysv/linux/aarch64/clone.S
+++ b/ports/sysdeps/unix/sysv/linux/aarch64/clone.S
@@ -65,9 +65,10 @@ ENTRY(__clone)
svc 0x0
cmp x0, #0
beq 2f
- blt C_SYMBOL_NAME(__syscall_error)
+ blt 3f
RET
1: mov x0, #-EINVAL
+3:
b syscall_error
2:
diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/ioctl.S b/ports/sysdeps/unix/sysv/linux/aarch64/ioctl.S
index b089bb5..2e08cf7 100644
--- a/ports/sysdeps/unix/sysv/linux/aarch64/ioctl.S
+++ b/ports/sysdeps/unix/sysv/linux/aarch64/ioctl.S
@@ -24,9 +24,7 @@ ENTRY(__ioctl)
sxtw x0, w0
svc #0x0
cmn x0, #0x1, lsl #12
- b.hi C_SYMBOL_NAME(__syscall_error)
- ret
-
+ PSEUDO_RET
PSEUDO_END (__ioctl)
weak_alias (__ioctl, ioctl)
-----------------------------------------------------------------------
Summary of changes:
ports/ChangeLog.aarch64 | 8 ++++++++
ports/sysdeps/unix/sysv/linux/aarch64/clone.S | 3 ++-
ports/sysdeps/unix/sysv/linux/aarch64/ioctl.S | 4 +---
3 files changed, 11 insertions(+), 4 deletions(-)
hooks/post-receive
--
GNU C Library master sources