summaryrefslogtreecommitdiff
path: root/debian/patches/bug30612.patch
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 /debian/patches/bug30612.patch
parentb785ee5e3497428ec9c7b595f727248d33cf40a7 (diff)
downloadmake.old-0d66b125183a647c0c1a25a21b6e68d793c85f1d.tar.gz
Fix Savannah bug #30612dyson/3.82-3+dyson1
handling of archive references with >1 object
Diffstat (limited to 'debian/patches/bug30612.patch')
-rw-r--r--debian/patches/bug30612.patch52
1 files changed, 52 insertions, 0 deletions
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)