summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2013-05-03 19:33:09 +0400
committerIgor Pashev <pashev.igor@gmail.com>2013-05-03 19:33:09 +0400
commit0d66b125183a647c0c1a25a21b6e68d793c85f1d (patch)
treedd1ad2a33d1979217e333ab90ac31884276e5d19
parentb785ee5e3497428ec9c7b595f727248d33cf40a7 (diff)
downloadmake.old-0d66b125183a647c0c1a25a21b6e68d793c85f1d.tar.gz
Fix Savannah bug #30612dyson/3.82-3+dyson1
handling of archive references with >1 object
-rw-r--r--debian/changelog7
-rw-r--r--debian/patches/bug30612.patch52
-rw-r--r--debian/patches/series1
3 files changed, 60 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 7df58d1..a92e583 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+make (3.82-3+dyson1) unstable; urgency=low
+
+ * Patch: Fix Savannah bug #30612: handling of archive references with >1
+ object
+
+ -- Igor Pashev <pashev.igor@gmail.com> Fri, 03 May 2013 19:32:19 +0400
+
make (3.82-3) unstable; urgency=low
* Initial release.
diff --git a/debian/patches/bug30612.patch b/debian/patches/bug30612.patch
new file mode 100644
index 0000000..673be1d
--- /dev/null
+++ b/debian/patches/bug30612.patch
@@ -0,0 +1,52 @@
+Description: Fix Savannah bug #30612: handling of archive references with >1 object
+Source: http://cvs.savannah.gnu.org/viewvc/make/make/read.c?r1=1.193&r2=1.194
+Bug: https://savannah.gnu.org/bugs/?30612
+Index: make/read.c
+===================================================================
+--- make.orig/read.c 2013-05-03 18:55:48.713768282 +0400
++++ make/read.c 2013-05-03 18:55:48.910846433 +0400
+@@ -3033,7 +3033,7 @@
+ {
+ /* This looks like the first element in an open archive group.
+ A valid group MUST have ')' as the last character. */
+- const char *e = p + nlen;
++ const char *e = p;
+ do
+ {
+ e = next_token (e);
+@@ -3089,19 +3089,19 @@
+ Go to the next item in the string. */
+ if (flags & PARSEFS_NOGLOB)
+ {
+- NEWELT (concat (2, prefix, tp));
++ NEWELT (concat (2, prefix, tmpbuf));
+ continue;
+ }
+
+ /* If we get here we know we're doing glob expansion.
+ TP is a string in tmpbuf. NLEN is no longer used.
+ We may need to do more work: after this NAME will be set. */
+- name = tp;
++ name = tmpbuf;
+
+ /* Expand tilde if applicable. */
+- if (tp[0] == '~')
++ if (tmpbuf[0] == '~')
+ {
+- tildep = tilde_expand (tp);
++ tildep = tilde_expand (tmpbuf);
+ if (tildep != 0)
+ name = tildep;
+ }
+@@ -3157,7 +3157,10 @@
+ else
+ {
+ /* We got a chain of items. Attach them. */
+- (*newp)->next = found;
++ if (*newp)
++ (*newp)->next = found;
++ else
++ *newp = found;
+
+ /* Find and set the new end. Massage names if necessary. */
+ while (1)
diff --git a/debian/patches/series b/debian/patches/series
index 7ca9a37..b796cb6 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
sunmake.patch
+bug30612.patch