r7013 - in glibc-package/trunk/debian: . patches patches/hurd-i386
Author: sthibault
Date: 2016-01-12 23:56:58 +0000 (Tue, 12 Jan 2016)
New Revision: 7013
Added:
glibc-package/trunk/debian/patches/hurd-i386/cvs-O_DIRECTORY.diff
glibc-package/trunk/debian/patches/hurd-i386/cvs-raise-longjump.diff
Modified:
glibc-package/trunk/debian/changelog
glibc-package/trunk/debian/patches/series
Log:
* patches/hurd-i386/cvs-raise-longjump.diff: New patch to fix longjump from
signal handler. Closes: #800900.
* patches/hurd-i386/cvs-O_DIRECTORY.diff: New patch to fix O_DIRECTORY lookup
on trivial translators.
Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog 2016-01-12 09:36:54 UTC (rev 7012)
+++ glibc-package/trunk/debian/changelog 2016-01-12 23:56:58 UTC (rev 7013)
@@ -18,6 +18,10 @@
[ Samuel Thibault ]
* patches/hurd-i386/cvs-libpthread-sigstate.diff: New patch to fix spurious
signal blocking leading to sigill. Fixes rsyslog tests.
+ * patches/hurd-i386/cvs-raise-longjump.diff: New patch to fix longjump from
+ signal handler. Closes: #800900.
+ * patches/hurd-i386/cvs-O_DIRECTORY.diff: New patch to fix O_DIRECTORY lookup
+ on trivial translators.
-- Aurelien Jarno <aurel32@debian.org> Fri, 25 Dec 2015 03:38:46 +0100
Added: glibc-package/trunk/debian/patches/hurd-i386/cvs-O_DIRECTORY.diff
===================================================================
--- glibc-package/trunk/debian/patches/hurd-i386/cvs-O_DIRECTORY.diff (rev 0)
+++ glibc-package/trunk/debian/patches/hurd-i386/cvs-O_DIRECTORY.diff 2016-01-12 23:56:58 UTC (rev 7013)
@@ -0,0 +1,31 @@
+commit e42ce0f45ebf20b4c6f89da605cd62b1cd60a9df
+Author: Flavio Cruz <flaviocruz@gmail.com>
+Date: Wed Jan 13 00:48:30 2016 +0100
+
+ Fix O_DIRECTORY lookup on trivial translators
+
+ * hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Do not remove
+ leading slash when `file_name' is "/".
+
+diff --git a/hurd/lookup-retry.c b/hurd/lookup-retry.c
+index ef256ac..aee2ba8 100644
+--- a/hurd/lookup-retry.c
++++ b/hurd/lookup-retry.c
+@@ -62,8 +62,15 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
+
+ error_t lookup_op (file_t startdir)
+ {
+- while (file_name[0] == '/')
+- file_name++;
++ if (file_name[0] == '/' && file_name[1] != '\0')
++ {
++ while (file_name[1] == '/')
++ /* Remove double leading slash. */
++ file_name++;
++ if (file_name[1] != '\0')
++ /* Remove leading slash when we have more than the slash. */
++ file_name++;
++ }
+
+ return lookup_error ((*lookup) (startdir, file_name, flags, mode,
+ &doretry, retryname, result));
Added: glibc-package/trunk/debian/patches/hurd-i386/cvs-raise-longjump.diff
===================================================================
--- glibc-package/trunk/debian/patches/hurd-i386/cvs-raise-longjump.diff (rev 0)
+++ glibc-package/trunk/debian/patches/hurd-i386/cvs-raise-longjump.diff 2016-01-12 23:56:58 UTC (rev 7013)
@@ -0,0 +1,23 @@
+commit fb304035c41c7ee2afede51e5e8568974549ba5e
+Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Date: Wed Nov 25 01:09:13 2015 +0100
+
+ Fix RPC breakage when longjumping from signal handler
+
+ * hurd/sigunwind.c (_hurdsig_longjmp_from_handler): Destroy reply port
+ of interrupted RPC instead of restoring it.
+
+diff --git a/hurd/sigunwind.c b/hurd/sigunwind.c
+index 3a62fb5..800bb30 100644
+--- a/hurd/sigunwind.c
++++ b/hurd/sigunwind.c
+@@ -50,7 +50,8 @@ _hurdsig_longjmp_from_handler (void *data, jmp_buf env, int val)
+ *reply_port = MACH_PORT_DEAD;
+ __mach_port_destroy (__mach_task_self (), port);
+ }
+- *reply_port = scp->sc_reply_port;
++ if (scp->sc_reply_port)
++ __mach_port_destroy (__mach_task_self (), scp->sc_reply_port);
+ }
+
+ __spin_lock (&ss->lock);
Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series 2016-01-12 09:36:54 UTC (rev 7012)
+++ glibc-package/trunk/debian/patches/series 2016-01-12 23:56:58 UTC (rev 7013)
@@ -171,6 +171,8 @@
hurd-i386/cvs-hidden.diff
hurd-i386/cvs-libpthread-api.diff
hurd-i386/cvs-libpthread-sigstate.diff
+hurd-i386/cvs-O_DIRECTORY.diff
+hurd-i386/cvs-raise-longjump.diff
i386/local-biarch.diff
i386/local-cmov.diff
Reply to: