diff options
-rw-r--r-- | quilt.changes | 6 | ||||
-rw-r--r-- | quilt/refresh.in | 17 |
2 files changed, 14 insertions, 9 deletions
diff --git a/quilt.changes b/quilt.changes index 047c863..d36e577 100644 --- a/quilt.changes +++ b/quilt.changes @@ -1,4 +1,10 @@ ------------------------------------------------------------------- +Sat Sep 8 20:13:34 CEST 2007 - agruen@suse.de + +- quite refresh: Avoid a possible environment overflow with very, + very large patches (#19748). + +------------------------------------------------------------------- Fri Aug 10 15:40:31 CEST 2007 - agruen@suse.de - quilt mail: only add a "-- " at the end of messages if it is diff --git a/quilt/refresh.in b/quilt/refresh.in index 362db97..f108892 100644 --- a/quilt/refresh.in +++ b/quilt/refresh.in @@ -274,14 +274,13 @@ prev_patch_file=$patch_file if [ -n "$opt_diffstat" ] then - diffstat="$(diffstat $QUILT_DIFFSTAT_OPTS \ - -p$num_strip_level $tmp_patch)" || die 1 cat_file "$prev_patch_file" | patch_header \ | awk ' function print_diffstat(arr, i) { - split(diffstat, arr, "\n") - for (i=1; i in arr; i++) - print prefix arr[i] + if (system("diffstat '"$QUILT_DIFFSTAT_OPTS \ + -p$num_strip_level \ + $tmp_patch | sed -e s:^:"'" prefix ":")) + exit 1 } { prefix="" if (index($0, "#") == 1) @@ -291,19 +290,19 @@ then next } /^#? .* files? changed(, .* insertions?\(\+\))?(, .* deletions?\(-\))?/ \ { print_diffstat() - diffstat = "" ; eat = "" + diffstat_printed=1 + eat = "" next } { print eat $0 eat = "" } END { printf "%s", eat - if (diffstat != "") { + if (!diffstat_printed) { print "---" print_diffstat() print prefix } } - ' diffstat="$diffstat" \ - > $tmp_result + ' > $tmp_result else cat_file "$prev_patch_file" | patch_header \ > $tmp_result |