diff options
author | Samuel Thibault <sthibault@debian.org> | 2009-05-25 09:45:02 +0000 |
---|---|---|
committer | Samuel Thibault <sthibault@debian.org> | 2009-05-25 09:45:02 +0000 |
commit | 07034c18144f3bf68b5ada5fd1338777f869eb80 (patch) | |
tree | 2d6ad00d6a4b39509e5880b92396bf76b2292448 | |
parent | 5a15d70208d32e63e95a8a67ef3ca7574eed1589 (diff) |
debian/patches/exec_fix.patch: New patch to fix random hang of exec.
-rw-r--r-- | debian/changelog | 1 | ||||
-rw-r--r-- | debian/patches/exec_fix.patch | 30 | ||||
-rw-r--r-- | debian/patches/series | 1 |
3 files changed, 32 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog index eecfaf2a..d4cee716 100644 --- a/debian/changelog +++ b/debian/changelog @@ -57,6 +57,7 @@ hurd (20080921-1) UNRELEASED; urgency=low to drop undefined references to __pthread_recursive_mutexattr. * debian/patches/extern_inline_fix.patch: New patch from Marc Dequène to fix extern inline declarations. + * debian/patches/exec_fix.patch: New patch to fix random hang of exec. -- Michael Banck <mbanck@debian.org> Sat, 13 Sep 2008 23:43:27 +0200 diff --git a/debian/patches/exec_fix.patch b/debian/patches/exec_fix.patch new file mode 100644 index 00000000..00c88d42 --- /dev/null +++ b/debian/patches/exec_fix.patch @@ -0,0 +1,30 @@ +Fixes long-standing random hang of exec. + +2009-05-25 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * exec.c (finish): Set FILE_DATA and MAP_BUFFER members of E to NULL + after freeing them. + +Index: exec/exec.c +=================================================================== +RCS file: /cvsroot/hurd/hurd/exec/exec.c,v +retrieving revision 1.93 +diff -u -p -r1.93 exec.c +--- exec/exec.c 2 Apr 2009 23:06:37 -0000 1.93 ++++ exec/exec.c 25 May 2009 09:39:35 -0000 +@@ -1008,10 +1008,13 @@ finish (struct execdata *e, int dealloc_ + #ifdef EXECDATA_STREAM + fclose (&e->stream); + #else +- if (e->file_data != NULL) ++ if (e->file_data != NULL) { + free (e->file_data); +- else if (map_buffer (e) != NULL) ++ e->file_data = NULL; ++ } else if (map_buffer (e) != NULL) { + munmap (map_buffer (e), map_vsize (e)); ++ map_buffer (e) = NULL; ++ } + #endif + } + if (dealloc_file && e->file != MACH_PORT_NULL) diff --git a/debian/patches/series b/debian/patches/series index 440a28f3..904f4e3b 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -28,3 +28,4 @@ libpthread_fix.patch -p0 libpthread_setcancel.patch -p0 libpthread_no_recursive_mutex_initializer.patch -p0 extern_inline_fix.patch -p1 +exec_fix.patch -p0 |