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 <aure...@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 <flavioc...@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.thiba...@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