summaryrefslogtreecommitdiff
path: root/patches/source/gcc/fastjar-patches/1000-fastjar-0.97-segfault.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/source/gcc/fastjar-patches/1000-fastjar-0.97-segfault.patch')
-rw-r--r--patches/source/gcc/fastjar-patches/1000-fastjar-0.97-segfault.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/patches/source/gcc/fastjar-patches/1000-fastjar-0.97-segfault.patch b/patches/source/gcc/fastjar-patches/1000-fastjar-0.97-segfault.patch
new file mode 100644
index 00000000..ab626240
--- /dev/null
+++ b/patches/source/gcc/fastjar-patches/1000-fastjar-0.97-segfault.patch
@@ -0,0 +1,29 @@
+2009-01-14 Jakub Jelinek <jakub@redhat.com>
+
+ * jartool.c (make_manifest): Initialize current_time before
+ calling unix2dostime on it.
+
+--- fastjar-0.97/jartool.c.jj 2008-10-15 18:35:37.000000000 +0200
++++ fastjar-0.97/jartool.c 2009-01-14 15:40:50.000000000 +0100
+@@ -820,6 +820,10 @@ int make_manifest(int jfd, const char *m
+ int mod_time; /* file modification time */
+ struct zipentry *ze;
+
++ current_time = time(NULL);
++ if(current_time == (time_t)-1)
++ exit_on_error("time");
++
+ mod_time = unix2dostime(&current_time);
+
+ /* If we are creating a new manifest, create a META-INF directory entry */
+@@ -828,10 +832,6 @@ int make_manifest(int jfd, const char *m
+
+ memset((file_header + 12), '\0', 16); /*clear mod time, crc, size fields*/
+
+- current_time = time(NULL);
+- if(current_time == (time_t)-1)
+- exit_on_error("time");
+-
+ PACK_UB2(file_header, LOC_EXTRA, 0);
+ PACK_UB2(file_header, LOC_COMP, 0);
+ PACK_UB2(file_header, LOC_FNLEN, nlen);