Imported Debian patch 1.5-16
[debian/pax] / pat_rep.c
index a93809f743692c9e4b1a2a9cdc60184caba81b17..03b9a8199d0950cdc3aff870c43b3cc32592a545 100644 (file)
--- a/pat_rep.c
+++ b/pat_rep.c
@@ -85,7 +85,7 @@ static char * range_match __P((register char *, register int));
 #ifdef NET2_REGEX
 static int resub __P((regexp *, char *, char *, register char *));
 #else
-static int resub __P((regex_t *, regmatch_t *, char *, char *, char *));
+static int resub __P((regex_t *, regmatch_t *, char *, char *, char *, char *));
 #endif
 
 /*
@@ -1020,7 +1020,7 @@ rep_name(name, nlen, prnt)
 #                      ifdef NET2_REGEX
                        if ((res = resub(pt->rcmp,pt->nstr,outpt,endpt)) < 0) {
 #                      else
-                       if ((res = resub(&(pt->rcmp),pm,pt->nstr,outpt,endpt))
+                       if ((res = resub(&(pt->rcmp),pm,inpt,pt->nstr,outpt,endpt))
                            < 0) {
 #                      endif
                                if (prnt)
@@ -1172,7 +1172,7 @@ resub(prog, src, dest, destend)
 
 #ifdef __STDC__
 static int
-resub(regex_t *rp, register regmatch_t *pm, char *src, char *dest,
+resub(regex_t *rp, register regmatch_t *pm, char *orig, char *src, char *dest,
        register char *destend)
 #else
 static int
@@ -1231,7 +1231,7 @@ resub(rp, pm, src, dest, destend)
                 */
                if (len > (destend - dpt))
                        len = destend - dpt;
-               if (l_strncpy(dpt, src + pmpt->rm_so, len) != len)
+               if (l_strncpy(dpt, orig + pmpt->rm_so, len) != len)
                        return(-1);
                dpt += len;
        }