Accepting request 1190482 from home:wfrisch:branches:devel:tools
- CVE-2019-20633.patch: Fix double-free/OOB read in pch.c (bsc#1167721) OBS-URL: https://build.opensuse.org/request/show/1190482 OBS-URL: https://build.opensuse.org/package/show/devel:tools/patch?expand=0&rev=70
This commit is contained in:
commit
34ab9541b6
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.osc
|
25
CVE-2019-20633.patch
Normal file
25
CVE-2019-20633.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
commit a09d9519a57e84d8e2ad592fbba09e8a9faf55f8
|
||||||
|
Author: Wolfgang Frisch <wolfgang.frisch@suse.com>
|
||||||
|
Date: Tue Jul 30 14:17:32 2024 +0200
|
||||||
|
|
||||||
|
Fix double-free/OOB read in pch.c (CVE-2019-20633)
|
||||||
|
|
||||||
|
see also: https://savannah.gnu.org/bugs/index.php?56683#comment1
|
||||||
|
|
||||||
|
diff --git a/src/pch.c b/src/pch.c
|
||||||
|
index fd9c480..57c76de 100644
|
||||||
|
--- a/src/pch.c
|
||||||
|
+++ b/src/pch.c
|
||||||
|
@@ -1183,8 +1183,11 @@ another_hunk (enum diff difftype, bool rev)
|
||||||
|
while (p_end >= 0) {
|
||||||
|
if (p_end == p_efake)
|
||||||
|
p_end = p_bfake; /* don't free twice */
|
||||||
|
- else
|
||||||
|
+ else {
|
||||||
|
free(p_line[p_end]);
|
||||||
|
+ p_line[p_end] = NULL;
|
||||||
|
+ p_len[p_end] = 0;
|
||||||
|
+ }
|
||||||
|
p_end--;
|
||||||
|
}
|
||||||
|
assert(p_end == -1);
|
48
abort-when-cleaning-up-fails.patch
Normal file
48
abort-when-cleaning-up-fails.patch
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
From: Andreas Gruenbacher <agruen@gnu.org>
|
||||||
|
Date: Fri, 28 Jun 2019 00:30:25 +0200
|
||||||
|
Subject: Abort when cleaning up fails
|
||||||
|
Patch-mainline: Yes
|
||||||
|
Git-commit: b7b028a77bd855f6f56b17c8837fc1cca77b469d
|
||||||
|
References: boo#1111572 savannah#54845
|
||||||
|
|
||||||
|
When a fatal error triggers during cleanup, another attempt will be made to
|
||||||
|
clean up, which will likely lead to the same fatal error. So instead, bail out
|
||||||
|
when that happens.
|
||||||
|
src/patch.c (cleanup): Bail out when called recursively.
|
||||||
|
(main): There is no need to call output_files() before cleanup() as cleanup()
|
||||||
|
already does that.
|
||||||
|
---
|
||||||
|
src/patch.c | 8 ++++++--
|
||||||
|
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
--- a/src/patch.c
|
||||||
|
+++ b/src/patch.c
|
||||||
|
@@ -681,7 +681,6 @@ main (int argc, char **argv)
|
||||||
|
}
|
||||||
|
if (outstate.ofp && (ferror (outstate.ofp) || fclose (outstate.ofp) != 0))
|
||||||
|
write_fatal ();
|
||||||
|
- output_files (NULL);
|
||||||
|
cleanup ();
|
||||||
|
delete_files ();
|
||||||
|
if (somefailed)
|
||||||
|
@@ -1977,7 +1976,6 @@ void
|
||||||
|
fatal_exit (int sig)
|
||||||
|
{
|
||||||
|
cleanup ();
|
||||||
|
-
|
||||||
|
if (sig)
|
||||||
|
exit_with_signal (sig);
|
||||||
|
|
||||||
|
@@ -1997,6 +1995,12 @@ remove_if_needed (char const *name, bool
|
||||||
|
static void
|
||||||
|
cleanup (void)
|
||||||
|
{
|
||||||
|
+ static bool already_cleaning_up;
|
||||||
|
+
|
||||||
|
+ if (already_cleaning_up)
|
||||||
|
+ return;
|
||||||
|
+ already_cleaning_up = true;
|
||||||
|
+
|
||||||
|
remove_if_needed (TMPINNAME, &TMPINNAME_needs_removal);
|
||||||
|
remove_if_needed (TMPOUTNAME, &TMPOUTNAME_needs_removal);
|
||||||
|
remove_if_needed (TMPPATNAME, &TMPPATNAME_needs_removal);
|
103
dont-follow-symlinks-unless-asked.patch
Normal file
103
dont-follow-symlinks-unless-asked.patch
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
From: Andreas Gruenbacher <agruen@gnu.org>
|
||||||
|
Date: Mon, 15 Jul 2019 16:21:48 +0200
|
||||||
|
Subject: Don't follow symlinks unless --follow-symlinks is given
|
||||||
|
Patch-mainline: Yes
|
||||||
|
Git-commit: dce4683cbbe107a95f1f0d45fabc304acfb5d71a
|
||||||
|
References: boo#1142041 CVE-2019-13636
|
||||||
|
|
||||||
|
* src/inp.c (plan_a, plan_b), src/util.c (copy_to_fd, copy_file,
|
||||||
|
append_to_file): Unless the --follow-symlinks option is given, open files with
|
||||||
|
the O_NOFOLLOW flag to avoid following symlinks. So far, we were only doing
|
||||||
|
that consistently for input files.
|
||||||
|
* src/util.c (create_backup): When creating empty backup files, (re)create them
|
||||||
|
with O_CREAT | O_EXCL to avoid following symlinks in that case as well.
|
||||||
|
---
|
||||||
|
src/inp.c | 12 ++++++++++--
|
||||||
|
src/util.c | 14 +++++++++++---
|
||||||
|
2 files changed, 21 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
--- a/src/inp.c
|
||||||
|
+++ b/src/inp.c
|
||||||
|
@@ -238,8 +238,13 @@ plan_a (char const *filename)
|
||||||
|
{
|
||||||
|
if (S_ISREG (instat.st_mode))
|
||||||
|
{
|
||||||
|
- int ifd = safe_open (filename, O_RDONLY|binary_transput, 0);
|
||||||
|
+ int flags = O_RDONLY | binary_transput;
|
||||||
|
size_t buffered = 0, n;
|
||||||
|
+ int ifd;
|
||||||
|
+
|
||||||
|
+ if (! follow_symlinks)
|
||||||
|
+ flags |= O_NOFOLLOW;
|
||||||
|
+ ifd = safe_open (filename, flags, 0);
|
||||||
|
if (ifd < 0)
|
||||||
|
pfatal ("can't open file %s", quotearg (filename));
|
||||||
|
|
||||||
|
@@ -340,6 +345,7 @@ plan_a (char const *filename)
|
||||||
|
static void
|
||||||
|
plan_b (char const *filename)
|
||||||
|
{
|
||||||
|
+ int flags = O_RDONLY | binary_transput;
|
||||||
|
int ifd;
|
||||||
|
FILE *ifp;
|
||||||
|
int c;
|
||||||
|
@@ -353,7 +359,9 @@ plan_b (char const *filename)
|
||||||
|
|
||||||
|
if (instat.st_size == 0)
|
||||||
|
filename = NULL_DEVICE;
|
||||||
|
- if ((ifd = safe_open (filename, O_RDONLY | binary_transput, 0)) < 0
|
||||||
|
+ if (! follow_symlinks)
|
||||||
|
+ flags |= O_NOFOLLOW;
|
||||||
|
+ if ((ifd = safe_open (filename, flags, 0)) < 0
|
||||||
|
|| ! (ifp = fdopen (ifd, binary_transput ? "rb" : "r")))
|
||||||
|
pfatal ("Can't open file %s", quotearg (filename));
|
||||||
|
if (TMPINNAME_needs_removal)
|
||||||
|
--- a/src/util.c
|
||||||
|
+++ b/src/util.c
|
||||||
|
@@ -388,7 +388,7 @@ create_backup (char const *to, const str
|
||||||
|
|
||||||
|
try_makedirs_errno = ENOENT;
|
||||||
|
safe_unlink (bakname);
|
||||||
|
- while ((fd = safe_open (bakname, O_CREAT | O_WRONLY | O_TRUNC, 0666)) < 0)
|
||||||
|
+ while ((fd = safe_open (bakname, O_CREAT | O_EXCL | O_WRONLY | O_TRUNC, 0666)) < 0)
|
||||||
|
{
|
||||||
|
if (errno != try_makedirs_errno)
|
||||||
|
pfatal ("Can't create file %s", quotearg (bakname));
|
||||||
|
@@ -579,10 +579,13 @@ create_file (char const *file, int open_
|
||||||
|
static void
|
||||||
|
copy_to_fd (const char *from, int tofd)
|
||||||
|
{
|
||||||
|
+ int from_flags = O_RDONLY | O_BINARY;
|
||||||
|
int fromfd;
|
||||||
|
ssize_t i;
|
||||||
|
|
||||||
|
- if ((fromfd = safe_open (from, O_RDONLY | O_BINARY, 0)) < 0)
|
||||||
|
+ if (! follow_symlinks)
|
||||||
|
+ from_flags |= O_NOFOLLOW;
|
||||||
|
+ if ((fromfd = safe_open (from, from_flags, 0)) < 0)
|
||||||
|
pfatal ("Can't reopen file %s", quotearg (from));
|
||||||
|
while ((i = read (fromfd, buf, bufsize)) != 0)
|
||||||
|
{
|
||||||
|
@@ -625,6 +628,8 @@ copy_file (char const *from, char const
|
||||||
|
else
|
||||||
|
{
|
||||||
|
assert (S_ISREG (mode));
|
||||||
|
+ if (! follow_symlinks)
|
||||||
|
+ to_flags |= O_NOFOLLOW;
|
||||||
|
tofd = create_file (to, O_WRONLY | O_BINARY | to_flags, mode,
|
||||||
|
to_dir_known_to_exist);
|
||||||
|
copy_to_fd (from, tofd);
|
||||||
|
@@ -640,9 +645,12 @@ copy_file (char const *from, char const
|
||||||
|
void
|
||||||
|
append_to_file (char const *from, char const *to)
|
||||||
|
{
|
||||||
|
+ int to_flags = O_WRONLY | O_APPEND | O_BINARY;
|
||||||
|
int tofd;
|
||||||
|
|
||||||
|
- if ((tofd = safe_open (to, O_WRONLY | O_BINARY | O_APPEND, 0)) < 0)
|
||||||
|
+ if (! follow_symlinks)
|
||||||
|
+ to_flags |= O_NOFOLLOW;
|
||||||
|
+ if ((tofd = safe_open (to, to_flags, 0)) < 0)
|
||||||
|
pfatal ("Can't reopen file %s", quotearg (to));
|
||||||
|
copy_to_fd (from, tofd);
|
||||||
|
if (close (tofd) != 0)
|
30
ed-style-01-missing-input-files.patch
Normal file
30
ed-style-01-missing-input-files.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
From: Andreas Gruenbacher <agruen@gnu.org>
|
||||||
|
Date: Fri, 6 Apr 2018 11:34:51 +0200
|
||||||
|
Subject: Allow input files to be missing for ed-style patches
|
||||||
|
Patch-mainline: yes
|
||||||
|
Git-commit: b5a91a01e5d0897facdd0f49d64b76b0f02b43e1
|
||||||
|
References: bsc#1088420, savannah#53566, CVE-2018-1000156
|
||||||
|
|
||||||
|
* src/pch.c (do_ed_script): Allow input files to be missing so that new
|
||||||
|
files will be created as with non-ed-style patches.
|
||||||
|
---
|
||||||
|
src/pch.c | 8 +++++---
|
||||||
|
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
--- a/src/pch.c
|
||||||
|
+++ b/src/pch.c
|
||||||
|
@@ -2394,9 +2394,11 @@ do_ed_script (char const *inname, char c
|
||||||
|
|
||||||
|
if (! dry_run && ! skip_rest_of_patch) {
|
||||||
|
int exclusive = *outname_needs_removal ? 0 : O_EXCL;
|
||||||
|
- assert (! inerrno);
|
||||||
|
- *outname_needs_removal = true;
|
||||||
|
- copy_file (inname, outname, 0, exclusive, instat.st_mode, true);
|
||||||
|
+ if (inerrno != ENOENT)
|
||||||
|
+ {
|
||||||
|
+ *outname_needs_removal = true;
|
||||||
|
+ copy_file (inname, outname, 0, exclusive, instat.st_mode, true);
|
||||||
|
+ }
|
||||||
|
sprintf (buf, "%s %s%s", editor_program,
|
||||||
|
verbosity == VERBOSE ? "" : "- ",
|
||||||
|
outname);
|
201
ed-style-02-fix-arbitrary-command-execution.patch
Normal file
201
ed-style-02-fix-arbitrary-command-execution.patch
Normal file
@ -0,0 +1,201 @@
|
|||||||
|
From: Andreas Gruenbacher <agruen@gnu.org>
|
||||||
|
Date: Fri, 6 Apr 2018 12:14:49 +0200
|
||||||
|
Subject: Fix arbitrary command execution in ed-style patches
|
||||||
|
Patch-mainline: yes
|
||||||
|
Git-commit: 123eaff0d5d1aebe128295959435b9ca5909c26d
|
||||||
|
References: bsc#1088420, savannah#53566, CVE-2018-1000156
|
||||||
|
|
||||||
|
* src/pch.c (do_ed_script): Write ed script to a temporary file instead
|
||||||
|
of piping it to ed: this will cause ed to abort on invalid commands
|
||||||
|
instead of rejecting them and carrying on.
|
||||||
|
* tests/ed-style: New test case.
|
||||||
|
* tests/Makefile.am (TESTS): Add test case.
|
||||||
|
---
|
||||||
|
src/pch.c | 91 +++++++++++++++++++++++++++++++++++++++---------------
|
||||||
|
tests/Makefile.am | 1
|
||||||
|
tests/ed-style | 41 ++++++++++++++++++++++++
|
||||||
|
3 files changed, 108 insertions(+), 25 deletions(-)
|
||||||
|
|
||||||
|
--- a/src/pch.c
|
||||||
|
+++ b/src/pch.c
|
||||||
|
@@ -33,6 +33,7 @@
|
||||||
|
# include <io.h>
|
||||||
|
#endif
|
||||||
|
#include <safe.h>
|
||||||
|
+#include <sys/wait.h>
|
||||||
|
|
||||||
|
#define INITHUNKMAX 125 /* initial dynamic allocation size */
|
||||||
|
|
||||||
|
@@ -2389,24 +2390,28 @@ do_ed_script (char const *inname, char c
|
||||||
|
static char const editor_program[] = EDITOR_PROGRAM;
|
||||||
|
|
||||||
|
file_offset beginning_of_this_line;
|
||||||
|
- FILE *pipefp = 0;
|
||||||
|
size_t chars_read;
|
||||||
|
+ FILE *tmpfp = 0;
|
||||||
|
+ char const *tmpname;
|
||||||
|
+ int tmpfd;
|
||||||
|
+ pid_t pid;
|
||||||
|
+
|
||||||
|
+ if (! dry_run && ! skip_rest_of_patch)
|
||||||
|
+ {
|
||||||
|
+ /* Write ed script to a temporary file. This causes ed to abort on
|
||||||
|
+ invalid commands such as when line numbers or ranges exceed the
|
||||||
|
+ number of available lines. When ed reads from a pipe, it rejects
|
||||||
|
+ invalid commands and treats the next line as a new command, which
|
||||||
|
+ can lead to arbitrary command execution. */
|
||||||
|
+
|
||||||
|
+ tmpfd = make_tempfile (&tmpname, 'e', NULL, O_RDWR | O_BINARY, 0);
|
||||||
|
+ if (tmpfd == -1)
|
||||||
|
+ pfatal ("Can't create temporary file %s", quotearg (tmpname));
|
||||||
|
+ tmpfp = fdopen (tmpfd, "w+b");
|
||||||
|
+ if (! tmpfp)
|
||||||
|
+ pfatal ("Can't open stream for file %s", quotearg (tmpname));
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- if (! dry_run && ! skip_rest_of_patch) {
|
||||||
|
- int exclusive = *outname_needs_removal ? 0 : O_EXCL;
|
||||||
|
- if (inerrno != ENOENT)
|
||||||
|
- {
|
||||||
|
- *outname_needs_removal = true;
|
||||||
|
- copy_file (inname, outname, 0, exclusive, instat.st_mode, true);
|
||||||
|
- }
|
||||||
|
- sprintf (buf, "%s %s%s", editor_program,
|
||||||
|
- verbosity == VERBOSE ? "" : "- ",
|
||||||
|
- outname);
|
||||||
|
- fflush (stdout);
|
||||||
|
- pipefp = popen(buf, binary_transput ? "wb" : "w");
|
||||||
|
- if (!pipefp)
|
||||||
|
- pfatal ("Can't open pipe to %s", quotearg (buf));
|
||||||
|
- }
|
||||||
|
for (;;) {
|
||||||
|
char ed_command_letter;
|
||||||
|
beginning_of_this_line = file_tell (pfp);
|
||||||
|
@@ -2417,14 +2422,14 @@ do_ed_script (char const *inname, char c
|
||||||
|
}
|
||||||
|
ed_command_letter = get_ed_command_letter (buf);
|
||||||
|
if (ed_command_letter) {
|
||||||
|
- if (pipefp)
|
||||||
|
- if (! fwrite (buf, sizeof *buf, chars_read, pipefp))
|
||||||
|
+ if (tmpfp)
|
||||||
|
+ if (! fwrite (buf, sizeof *buf, chars_read, tmpfp))
|
||||||
|
write_fatal ();
|
||||||
|
if (ed_command_letter != 'd' && ed_command_letter != 's') {
|
||||||
|
p_pass_comments_through = true;
|
||||||
|
while ((chars_read = get_line ()) != 0) {
|
||||||
|
- if (pipefp)
|
||||||
|
- if (! fwrite (buf, sizeof *buf, chars_read, pipefp))
|
||||||
|
+ if (tmpfp)
|
||||||
|
+ if (! fwrite (buf, sizeof *buf, chars_read, tmpfp))
|
||||||
|
write_fatal ();
|
||||||
|
if (chars_read == 2 && strEQ (buf, ".\n"))
|
||||||
|
break;
|
||||||
|
@@ -2437,13 +2442,49 @@ do_ed_script (char const *inname, char c
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- if (!pipefp)
|
||||||
|
+ if (!tmpfp)
|
||||||
|
return;
|
||||||
|
- if (fwrite ("w\nq\n", sizeof (char), (size_t) 4, pipefp) == 0
|
||||||
|
- || fflush (pipefp) != 0)
|
||||||
|
+ if (fwrite ("w\nq\n", sizeof (char), (size_t) 4, tmpfp) == 0
|
||||||
|
+ || fflush (tmpfp) != 0)
|
||||||
|
write_fatal ();
|
||||||
|
- if (pclose (pipefp) != 0)
|
||||||
|
- fatal ("%s FAILED", editor_program);
|
||||||
|
+
|
||||||
|
+ if (lseek (tmpfd, 0, SEEK_SET) == -1)
|
||||||
|
+ pfatal ("Can't rewind to the beginning of file %s", quotearg (tmpname));
|
||||||
|
+
|
||||||
|
+ if (! dry_run && ! skip_rest_of_patch) {
|
||||||
|
+ int exclusive = *outname_needs_removal ? 0 : O_EXCL;
|
||||||
|
+ *outname_needs_removal = true;
|
||||||
|
+ if (inerrno != ENOENT)
|
||||||
|
+ {
|
||||||
|
+ *outname_needs_removal = true;
|
||||||
|
+ copy_file (inname, outname, 0, exclusive, instat.st_mode, true);
|
||||||
|
+ }
|
||||||
|
+ sprintf (buf, "%s %s%s", editor_program,
|
||||||
|
+ verbosity == VERBOSE ? "" : "- ",
|
||||||
|
+ outname);
|
||||||
|
+ fflush (stdout);
|
||||||
|
+
|
||||||
|
+ pid = fork();
|
||||||
|
+ if (pid == -1)
|
||||||
|
+ pfatal ("Can't fork");
|
||||||
|
+ else if (pid == 0)
|
||||||
|
+ {
|
||||||
|
+ dup2 (tmpfd, 0);
|
||||||
|
+ execl ("/bin/sh", "sh", "-c", buf, (char *) 0);
|
||||||
|
+ _exit (2);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ int wstatus;
|
||||||
|
+ if (waitpid (pid, &wstatus, 0) == -1
|
||||||
|
+ || ! WIFEXITED (wstatus)
|
||||||
|
+ || WEXITSTATUS (wstatus) != 0)
|
||||||
|
+ fatal ("%s FAILED", editor_program);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ fclose (tmpfp);
|
||||||
|
+ safe_unlink (tmpname);
|
||||||
|
|
||||||
|
if (ofp)
|
||||||
|
{
|
||||||
|
--- a/tests/Makefile.am
|
||||||
|
+++ b/tests/Makefile.am
|
||||||
|
@@ -32,6 +32,7 @@ TESTS = \
|
||||||
|
crlf-handling \
|
||||||
|
dash-o-append \
|
||||||
|
deep-directories \
|
||||||
|
+ ed-style \
|
||||||
|
empty-files \
|
||||||
|
false-match \
|
||||||
|
fifo \
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/ed-style
|
||||||
|
@@ -0,0 +1,41 @@
|
||||||
|
+# Copyright (C) 2018 Free Software Foundation, Inc.
|
||||||
|
+#
|
||||||
|
+# Copying and distribution of this file, with or without modification,
|
||||||
|
+# in any medium, are permitted without royalty provided the copyright
|
||||||
|
+# notice and this notice are preserved.
|
||||||
|
+
|
||||||
|
+. $srcdir/test-lib.sh
|
||||||
|
+
|
||||||
|
+require cat
|
||||||
|
+use_local_patch
|
||||||
|
+use_tmpdir
|
||||||
|
+
|
||||||
|
+# ==============================================================
|
||||||
|
+
|
||||||
|
+cat > ed1.diff <<EOF
|
||||||
|
+0a
|
||||||
|
+foo
|
||||||
|
+.
|
||||||
|
+EOF
|
||||||
|
+
|
||||||
|
+check 'patch -e foo -i ed1.diff' <<EOF
|
||||||
|
+EOF
|
||||||
|
+
|
||||||
|
+check 'cat foo' <<EOF
|
||||||
|
+foo
|
||||||
|
+EOF
|
||||||
|
+
|
||||||
|
+cat > ed2.diff <<EOF
|
||||||
|
+1337a
|
||||||
|
+r !echo bar
|
||||||
|
+,p
|
||||||
|
+EOF
|
||||||
|
+
|
||||||
|
+check 'patch -e foo -i ed2.diff 2> /dev/null || echo "Status: $?"' <<EOF
|
||||||
|
+?
|
||||||
|
+Status: 2
|
||||||
|
+EOF
|
||||||
|
+
|
||||||
|
+check 'cat foo' <<EOF
|
||||||
|
+foo
|
||||||
|
+EOF
|
35
ed-style-03-update-test-Makefile.patch
Normal file
35
ed-style-03-update-test-Makefile.patch
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
From: Jean Delvare <jdelvare@suse.de>
|
||||||
|
Subject: Update tests/Makefile.in
|
||||||
|
Patch-mainline: no, temporary integration
|
||||||
|
References: bsc#1088420, savannah#53566, CVE-2018-1000156
|
||||||
|
|
||||||
|
Previous patch modifies tests/Makefile.am. Mirror the changes to
|
||||||
|
tests/Makefile.in so that we don't need automake.
|
||||||
|
---
|
||||||
|
tests/Makefile.in | 8 ++++++++
|
||||||
|
1 file changed, 8 insertions(+)
|
||||||
|
|
||||||
|
--- a/tests/Makefile.in
|
||||||
|
+++ b/tests/Makefile.in
|
||||||
|
@@ -1308,6 +1308,7 @@ TESTS = \
|
||||||
|
crlf-handling \
|
||||||
|
dash-o-append \
|
||||||
|
deep-directories \
|
||||||
|
+ ed-style \
|
||||||
|
empty-files \
|
||||||
|
false-match \
|
||||||
|
fifo \
|
||||||
|
@@ -1638,6 +1639,13 @@ deep-directories.log: deep-directories
|
||||||
|
$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
|
||||||
|
--log-file $$b.log --trs-file $$b.trs \
|
||||||
|
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
|
||||||
|
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
|
||||||
|
+ed-style.log: ed-style
|
||||||
|
+ @p='ed-style'; \
|
||||||
|
+ b='ed-style'; \
|
||||||
|
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
|
||||||
|
+ --log-file $$b.log --trs-file $$b.trs \
|
||||||
|
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
|
||||||
|
"$$tst" $(AM_TESTS_FD_REDIRECT)
|
||||||
|
empty-files.log: empty-files
|
||||||
|
@p='empty-files'; \
|
35
ed-style-04-invoke-ed-directly.patch
Normal file
35
ed-style-04-invoke-ed-directly.patch
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
From: Andreas Gruenbacher <agruen@gnu.org>
|
||||||
|
Date: Fri, 6 Apr 2018 19:36:15 +0200
|
||||||
|
Subject: Invoke ed directly instead of using the shell
|
||||||
|
Git-commit: 3fcd042d26d70856e826a42b5f93dc4854d80bf0
|
||||||
|
Patch-mainline: yes
|
||||||
|
References: bsc#1088420, savannah#53566, CVE-2018-1000156
|
||||||
|
|
||||||
|
* src/pch.c (do_ed_script): Invoke ed directly instead of using a shell
|
||||||
|
command to avoid quoting vulnerabilities.
|
||||||
|
---
|
||||||
|
src/pch.c | 6 ++----
|
||||||
|
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
--- a/src/pch.c
|
||||||
|
+++ b/src/pch.c
|
||||||
|
@@ -2459,9 +2459,6 @@ do_ed_script (char const *inname, char c
|
||||||
|
*outname_needs_removal = true;
|
||||||
|
copy_file (inname, outname, 0, exclusive, instat.st_mode, true);
|
||||||
|
}
|
||||||
|
- sprintf (buf, "%s %s%s", editor_program,
|
||||||
|
- verbosity == VERBOSE ? "" : "- ",
|
||||||
|
- outname);
|
||||||
|
fflush (stdout);
|
||||||
|
|
||||||
|
pid = fork();
|
||||||
|
@@ -2470,7 +2467,8 @@ do_ed_script (char const *inname, char c
|
||||||
|
else if (pid == 0)
|
||||||
|
{
|
||||||
|
dup2 (tmpfd, 0);
|
||||||
|
- execl ("/bin/sh", "sh", "-c", buf, (char *) 0);
|
||||||
|
+ assert (outname[0] != '!' && outname[0] != '-');
|
||||||
|
+ execlp (editor_program, editor_program, "-", outname, (char *) NULL);
|
||||||
|
_exit (2);
|
||||||
|
}
|
||||||
|
else
|
95
ed-style-05-minor-cleanups.patch
Normal file
95
ed-style-05-minor-cleanups.patch
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
From: Andreas Gruenbacher <agruen@gnu.org>
|
||||||
|
Date: Fri, 6 Apr 2018 20:32:46 +0200
|
||||||
|
Subject: Minor cleanups in do_ed_script
|
||||||
|
Git-commit: 2a32bf09f5e9572da4be183bb0dbde8164351474
|
||||||
|
Patch-mainline: yes
|
||||||
|
References: bsc#1088420, savannah#53566, CVE-2018-1000156
|
||||||
|
|
||||||
|
* src/pch.c (do_ed_script): Minor cleanups.
|
||||||
|
|
||||||
|
Backporting notes: adjusted because we don't have commit ff1d3a67da1e
|
||||||
|
("Use gnulib execute module") so the context is very different.
|
||||||
|
---
|
||||||
|
src/pch.c | 56 +++++++++++++++++++++++++++-----------------------------
|
||||||
|
1 file changed, 27 insertions(+), 29 deletions(-)
|
||||||
|
|
||||||
|
--- a/src/pch.c
|
||||||
|
+++ b/src/pch.c
|
||||||
|
@@ -2395,6 +2395,8 @@ do_ed_script (char const *inname, char c
|
||||||
|
char const *tmpname;
|
||||||
|
int tmpfd;
|
||||||
|
pid_t pid;
|
||||||
|
+ int exclusive = *outname_needs_removal ? 0 : O_EXCL;
|
||||||
|
+
|
||||||
|
|
||||||
|
if (! dry_run && ! skip_rest_of_patch)
|
||||||
|
{
|
||||||
|
@@ -2442,7 +2444,7 @@ do_ed_script (char const *inname, char c
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- if (!tmpfp)
|
||||||
|
+ if (dry_run || skip_rest_of_patch)
|
||||||
|
return;
|
||||||
|
if (fwrite ("w\nq\n", sizeof (char), (size_t) 4, tmpfp) == 0
|
||||||
|
|| fflush (tmpfp) != 0)
|
||||||
|
@@ -2451,35 +2453,31 @@ do_ed_script (char const *inname, char c
|
||||||
|
if (lseek (tmpfd, 0, SEEK_SET) == -1)
|
||||||
|
pfatal ("Can't rewind to the beginning of file %s", quotearg (tmpname));
|
||||||
|
|
||||||
|
- if (! dry_run && ! skip_rest_of_patch) {
|
||||||
|
- int exclusive = *outname_needs_removal ? 0 : O_EXCL;
|
||||||
|
+ if (inerrno != ENOENT)
|
||||||
|
+ {
|
||||||
|
*outname_needs_removal = true;
|
||||||
|
- if (inerrno != ENOENT)
|
||||||
|
- {
|
||||||
|
- *outname_needs_removal = true;
|
||||||
|
- copy_file (inname, outname, 0, exclusive, instat.st_mode, true);
|
||||||
|
- }
|
||||||
|
- fflush (stdout);
|
||||||
|
-
|
||||||
|
- pid = fork();
|
||||||
|
- if (pid == -1)
|
||||||
|
- pfatal ("Can't fork");
|
||||||
|
- else if (pid == 0)
|
||||||
|
- {
|
||||||
|
- dup2 (tmpfd, 0);
|
||||||
|
- assert (outname[0] != '!' && outname[0] != '-');
|
||||||
|
- execlp (editor_program, editor_program, "-", outname, (char *) NULL);
|
||||||
|
- _exit (2);
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- int wstatus;
|
||||||
|
- if (waitpid (pid, &wstatus, 0) == -1
|
||||||
|
- || ! WIFEXITED (wstatus)
|
||||||
|
- || WEXITSTATUS (wstatus) != 0)
|
||||||
|
- fatal ("%s FAILED", editor_program);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
+ copy_file (inname, outname, 0, exclusive, instat.st_mode, true);
|
||||||
|
+ }
|
||||||
|
+ fflush (stdout);
|
||||||
|
+
|
||||||
|
+ pid = fork();
|
||||||
|
+ if (pid == -1)
|
||||||
|
+ pfatal ("Can't fork");
|
||||||
|
+ else if (pid == 0)
|
||||||
|
+ {
|
||||||
|
+ dup2 (tmpfd, 0);
|
||||||
|
+ assert (outname[0] != '!' && outname[0] != '-');
|
||||||
|
+ execlp (editor_program, editor_program, "-", outname, (char *) NULL);
|
||||||
|
+ _exit (2);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ int wstatus;
|
||||||
|
+ if (waitpid (pid, &wstatus, 0) == -1
|
||||||
|
+ || ! WIFEXITED (wstatus)
|
||||||
|
+ || WEXITSTATUS (wstatus) != 0)
|
||||||
|
+ fatal ("%s FAILED", editor_program);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
fclose (tmpfp);
|
||||||
|
safe_unlink (tmpname);
|
24
ed-style-06-fix-test-failure.patch
Normal file
24
ed-style-06-fix-test-failure.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
From: Bruno Haible <bruno@clisp.org>
|
||||||
|
Date: Sat, 7 Apr 2018 12:34:03 +0200
|
||||||
|
Subject: Fix 'ed-style' test failure
|
||||||
|
Git-commit: 458ac51a05426c1af9aa6bf1342ecf60728c19b4
|
||||||
|
Patch-mainline: yes
|
||||||
|
References: bsc#1088420, savannah#53566, CVE-2018-1000156
|
||||||
|
|
||||||
|
* tests/ed-style: Remove '?' line from expected output.
|
||||||
|
---
|
||||||
|
tests/ed-style | 3 +--
|
||||||
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
|
--- a/tests/ed-style
|
||||||
|
+++ b/tests/ed-style
|
||||||
|
@@ -31,8 +31,7 @@ r !echo bar
|
||||||
|
,p
|
||||||
|
EOF
|
||||||
|
|
||||||
|
-check 'patch -e foo -i ed2.diff 2> /dev/null || echo "Status: $?"' <<EOF
|
||||||
|
-?
|
||||||
|
+check 'patch -e foo -i ed2.diff > /dev/null 2> /dev/null || echo "Status: $?"' <<EOF
|
||||||
|
Status: 2
|
||||||
|
EOF
|
||||||
|
|
95
ed-style-07-dont-leak-tmp-file.patch
Normal file
95
ed-style-07-dont-leak-tmp-file.patch
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
From: Jean Delvare <jdelvare@suse.de>
|
||||||
|
Date: Thu, 3 May 2018 14:31:55 +0200
|
||||||
|
Subject: Don't leak temporary file on failed ed-style patch
|
||||||
|
Git-commit: 19599883ffb6a450d2884f081f8ecf68edbed7ee
|
||||||
|
Patch-mainline: yes
|
||||||
|
References: bsc#1092500, savannah#53820
|
||||||
|
|
||||||
|
Now that we write ed-style patches to a temporary file before we
|
||||||
|
apply them, we need to ensure that the temporary file is removed
|
||||||
|
before we leave, even on fatal error.
|
||||||
|
|
||||||
|
* src/pch.c (do_ed_script): Use global TMPEDNAME instead of local
|
||||||
|
tmpname. Don't unlink the file directly, instead tag it for removal
|
||||||
|
at exit time.
|
||||||
|
* src/patch.c (cleanup): Unlink TMPEDNAME at exit.
|
||||||
|
|
||||||
|
This closes bug #53820:
|
||||||
|
https://savannah.gnu.org/bugs/index.php?53820
|
||||||
|
|
||||||
|
Fixes: 123eaff0d5d1 ("Fix arbitrary command execution in ed-style patches (CVE-2018-1000156)")
|
||||||
|
---
|
||||||
|
src/common.h | 2 ++
|
||||||
|
src/patch.c | 1 +
|
||||||
|
src/pch.c | 11 +++++------
|
||||||
|
3 files changed, 8 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
--- a/src/common.h
|
||||||
|
+++ b/src/common.h
|
||||||
|
@@ -94,10 +94,12 @@ XTERN char const *origsuff;
|
||||||
|
XTERN char const * TMPINNAME;
|
||||||
|
XTERN char const * TMPOUTNAME;
|
||||||
|
XTERN char const * TMPPATNAME;
|
||||||
|
+XTERN char const * TMPEDNAME;
|
||||||
|
|
||||||
|
XTERN bool TMPINNAME_needs_removal;
|
||||||
|
XTERN bool TMPOUTNAME_needs_removal;
|
||||||
|
XTERN bool TMPPATNAME_needs_removal;
|
||||||
|
+XTERN bool TMPEDNAME_needs_removal;
|
||||||
|
|
||||||
|
#ifdef DEBUGGING
|
||||||
|
XTERN int debug;
|
||||||
|
--- a/src/patch.c
|
||||||
|
+++ b/src/patch.c
|
||||||
|
@@ -1999,6 +1999,7 @@ cleanup (void)
|
||||||
|
remove_if_needed (TMPINNAME, &TMPINNAME_needs_removal);
|
||||||
|
remove_if_needed (TMPOUTNAME, &TMPOUTNAME_needs_removal);
|
||||||
|
remove_if_needed (TMPPATNAME, &TMPPATNAME_needs_removal);
|
||||||
|
+ remove_if_needed (TMPEDNAME, &TMPEDNAME_needs_removal);
|
||||||
|
remove_if_needed (TMPREJNAME, &TMPREJNAME_needs_removal);
|
||||||
|
output_files (NULL);
|
||||||
|
}
|
||||||
|
--- a/src/pch.c
|
||||||
|
+++ b/src/pch.c
|
||||||
|
@@ -2392,7 +2392,6 @@ do_ed_script (char const *inname, char c
|
||||||
|
file_offset beginning_of_this_line;
|
||||||
|
size_t chars_read;
|
||||||
|
FILE *tmpfp = 0;
|
||||||
|
- char const *tmpname;
|
||||||
|
int tmpfd;
|
||||||
|
pid_t pid;
|
||||||
|
int exclusive = *outname_needs_removal ? 0 : O_EXCL;
|
||||||
|
@@ -2406,12 +2405,13 @@ do_ed_script (char const *inname, char c
|
||||||
|
invalid commands and treats the next line as a new command, which
|
||||||
|
can lead to arbitrary command execution. */
|
||||||
|
|
||||||
|
- tmpfd = make_tempfile (&tmpname, 'e', NULL, O_RDWR | O_BINARY, 0);
|
||||||
|
+ tmpfd = make_tempfile (&TMPEDNAME, 'e', NULL, O_RDWR | O_BINARY, 0);
|
||||||
|
if (tmpfd == -1)
|
||||||
|
- pfatal ("Can't create temporary file %s", quotearg (tmpname));
|
||||||
|
+ pfatal ("Can't create temporary file %s", quotearg (TMPEDNAME));
|
||||||
|
+ TMPEDNAME_needs_removal = true;
|
||||||
|
tmpfp = fdopen (tmpfd, "w+b");
|
||||||
|
if (! tmpfp)
|
||||||
|
- pfatal ("Can't open stream for file %s", quotearg (tmpname));
|
||||||
|
+ pfatal ("Can't open stream for file %s", quotearg (TMPEDNAME));
|
||||||
|
}
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
@@ -2451,7 +2451,7 @@ do_ed_script (char const *inname, char c
|
||||||
|
write_fatal ();
|
||||||
|
|
||||||
|
if (lseek (tmpfd, 0, SEEK_SET) == -1)
|
||||||
|
- pfatal ("Can't rewind to the beginning of file %s", quotearg (tmpname));
|
||||||
|
+ pfatal ("Can't rewind to the beginning of file %s", quotearg (TMPEDNAME));
|
||||||
|
|
||||||
|
if (inerrno != ENOENT)
|
||||||
|
{
|
||||||
|
@@ -2480,7 +2480,6 @@ do_ed_script (char const *inname, char c
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose (tmpfp);
|
||||||
|
- safe_unlink (tmpname);
|
||||||
|
|
||||||
|
if (ofp)
|
||||||
|
{
|
72
ed-style-08-dont-leak-tmp-file-multi.patch
Normal file
72
ed-style-08-dont-leak-tmp-file-multi.patch
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
From: Jean Delvare <jdelvare@suse.de>
|
||||||
|
Date: Mon, 7 May 2018 15:14:45 +0200
|
||||||
|
Subject: Don't leak temporary file on failed multi-file ed-style patch
|
||||||
|
Git-commit: 369dcccdfa6336e5a873d6d63705cfbe04c55727
|
||||||
|
Patch-mainline: yes
|
||||||
|
References: bsc#1092500, savannah#53820
|
||||||
|
|
||||||
|
The previous fix worked fine with single-file ed-style patches, but
|
||||||
|
would still leak temporary files in the case of multi-file ed-style
|
||||||
|
patch. Fix that case as well, and extend the test case to check for
|
||||||
|
it.
|
||||||
|
|
||||||
|
* src/patch.c (main): Unlink TMPEDNAME if needed before moving to
|
||||||
|
the next file in a patch.
|
||||||
|
|
||||||
|
This closes bug #53820:
|
||||||
|
https://savannah.gnu.org/bugs/index.php?53820
|
||||||
|
|
||||||
|
Fixes: 123eaff0d5d1 ("Fix arbitrary command execution in ed-style patches (CVE-2018-1000156)")
|
||||||
|
Fixes: 19599883ffb6 ("Don't leak temporary file on failed ed-style patch")
|
||||||
|
---
|
||||||
|
src/patch.c | 1 +
|
||||||
|
tests/ed-style | 31 +++++++++++++++++++++++++++++++
|
||||||
|
2 files changed, 32 insertions(+)
|
||||||
|
|
||||||
|
--- a/src/patch.c
|
||||||
|
+++ b/src/patch.c
|
||||||
|
@@ -236,6 +236,7 @@ main (int argc, char **argv)
|
||||||
|
}
|
||||||
|
remove_if_needed (TMPOUTNAME, &TMPOUTNAME_needs_removal);
|
||||||
|
}
|
||||||
|
+ remove_if_needed (TMPEDNAME, &TMPEDNAME_needs_removal);
|
||||||
|
|
||||||
|
if (! skip_rest_of_patch && ! file_type)
|
||||||
|
{
|
||||||
|
--- a/tests/ed-style
|
||||||
|
+++ b/tests/ed-style
|
||||||
|
@@ -38,3 +38,34 @@ EOF
|
||||||
|
check 'cat foo' <<EOF
|
||||||
|
foo
|
||||||
|
EOF
|
||||||
|
+
|
||||||
|
+# Test the case where one ed-style patch modifies several files
|
||||||
|
+
|
||||||
|
+cat > ed3.diff <<EOF
|
||||||
|
+--- foo
|
||||||
|
++++ foo
|
||||||
|
+1c
|
||||||
|
+bar
|
||||||
|
+.
|
||||||
|
+--- baz
|
||||||
|
++++ baz
|
||||||
|
+0a
|
||||||
|
+baz
|
||||||
|
+.
|
||||||
|
+EOF
|
||||||
|
+
|
||||||
|
+# Apparently we can't create a file with such a patch, while it works fine
|
||||||
|
+# when the file name is provided on the command line
|
||||||
|
+cat > baz <<EOF
|
||||||
|
+EOF
|
||||||
|
+
|
||||||
|
+check 'patch -e -i ed3.diff' <<EOF
|
||||||
|
+EOF
|
||||||
|
+
|
||||||
|
+check 'cat foo' <<EOF
|
||||||
|
+bar
|
||||||
|
+EOF
|
||||||
|
+
|
||||||
|
+check 'cat baz' <<EOF
|
||||||
|
+baz
|
||||||
|
+EOF
|
25
fix-segfault-mangled-rename.patch
Normal file
25
fix-segfault-mangled-rename.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
From: Andreas Gruenbacher <agruen@gnu.org>
|
||||||
|
Date: Mon, 12 Feb 2018 16:48:24 +0100
|
||||||
|
Subject: Fix segfault with mangled rename patch
|
||||||
|
Patch-mainline: yes
|
||||||
|
Git-commit: f290f48a621867084884bfff87f8093c15195e6a
|
||||||
|
References: bsc#1080951, CVE-2018-6951, savannah#53133
|
||||||
|
|
||||||
|
http://savannah.gnu.org/bugs/?53132
|
||||||
|
* src/pch.c (intuit_diff_type): Ensure that two filenames are specified
|
||||||
|
for renames and copies (fix the existing check).
|
||||||
|
|
||||||
|
diff --git a/src/pch.c b/src/pch.c
|
||||||
|
index ff9ed2c..bc6278c 100644
|
||||||
|
--- a/src/pch.c
|
||||||
|
+++ b/src/pch.c
|
||||||
|
@@ -974,7 +974,8 @@ intuit_diff_type (bool need_header, mode_t *p_file_type)
|
||||||
|
if ((pch_rename () || pch_copy ())
|
||||||
|
&& ! inname
|
||||||
|
&& ! ((i == OLD || i == NEW) &&
|
||||||
|
- p_name[! reverse] &&
|
||||||
|
+ p_name[reverse] && p_name[! reverse] &&
|
||||||
|
+ name_is_valid (p_name[reverse]) &&
|
||||||
|
name_is_valid (p_name[! reverse])))
|
||||||
|
{
|
||||||
|
say ("Cannot %s file without two valid file names\n", pch_rename () ? "rename" : "copy");
|
27
fix-swapping-fake-lines-in-pch_swap.patch
Normal file
27
fix-swapping-fake-lines-in-pch_swap.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
From: Andreas Gruenbacher <agruen@gnu.org>
|
||||||
|
Date: Fri, 17 Aug 2018 13:35:40 +0200
|
||||||
|
Subject: Fix swapping fake lines in pch_swap
|
||||||
|
Patch-mainline: Yes
|
||||||
|
Git-commit: 9c986353e420ead6e706262bf204d6e03322c300
|
||||||
|
References: boo#1080985 savannah#53133 CVE-2018-6952
|
||||||
|
|
||||||
|
* src/pch.c (pch_swap): Fix swapping p_bfake and p_efake when there is a
|
||||||
|
blank line in the middle of a context-diff hunk: that empty line stays
|
||||||
|
in the middle of the hunk and isn't swapped.
|
||||||
|
|
||||||
|
Fixes: https://savannah.gnu.org/bugs/index.php?53133
|
||||||
|
---
|
||||||
|
src/pch.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/src/pch.c
|
||||||
|
+++ b/src/pch.c
|
||||||
|
@@ -2115,7 +2115,7 @@ pch_swap (void)
|
||||||
|
}
|
||||||
|
if (p_efake >= 0) { /* fix non-freeable ptr range */
|
||||||
|
if (p_efake <= i)
|
||||||
|
- n = p_end - i + 1;
|
||||||
|
+ n = p_end - p_ptrn_lines;
|
||||||
|
else
|
||||||
|
n = -i;
|
||||||
|
p_efake += n;
|
59
pass-the-correct-stat-to-backup-files.patch
Normal file
59
pass-the-correct-stat-to-backup-files.patch
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
From: Takashi Iwai <tiwai@suse.de>
|
||||||
|
Date: Wed, 6 Apr 2022 10:48:35 +0200
|
||||||
|
Subject: Pass the correct stat to backup files
|
||||||
|
Patch-mainline: Yes
|
||||||
|
Git-commit: c835ecc67b7e37c0d0b7dd7e032209fdaa285808
|
||||||
|
References: boo#1198106 savananh#62364
|
||||||
|
|
||||||
|
The last case to call output_file() in the main loop is
|
||||||
|
output_file (outname, NULL, &tmpoutst, NULL, NULL,
|
||||||
|
file_type | 0, backup);
|
||||||
|
and this essentially means to create a backup file (where to=NULL)
|
||||||
|
only if backup=true, and does nothing else.
|
||||||
|
|
||||||
|
And, in the current code, the passed file stat (&tmpoutst) is a file
|
||||||
|
stat of the temporary file that has been processed, not the original
|
||||||
|
file (outname) to be backed up. When the backup is performed
|
||||||
|
immediately, this is no big problem. However, output_file() may
|
||||||
|
schedule the deferred handling, and the given file may be backed up at
|
||||||
|
a later point. The problem is that create_backup() tries to avoid the
|
||||||
|
backup of the same file twice, and it checks the given stat i-node
|
||||||
|
number in the hash list. Since it's a stat of a temporary file, the
|
||||||
|
same i-node number may be reused once a temp file is deleted and
|
||||||
|
another is created. This results in a false-positive detection of the
|
||||||
|
already existing file, eventually missing a backup file.
|
||||||
|
|
||||||
|
This patch attempts to address the issue:
|
||||||
|
- Modify the condition for better understanding, clearly indicating
|
||||||
|
that the code there is for creating a backup file
|
||||||
|
- Pass the stat of the original file instead of a temporary file
|
||||||
|
|
||||||
|
BugLink: https://bugzilla.opensuse.org/show_bug.cgi?id=1198106
|
||||||
|
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||||
|
Signed-off-by: Jean Delvare <jdelvare@suse.de>
|
||||||
|
---
|
||||||
|
src/patch.c | 13 ++++++++++---
|
||||||
|
1 file changed, 10 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
--- a/src/patch.c
|
||||||
|
+++ b/src/patch.c
|
||||||
|
@@ -611,9 +611,16 @@ main (int argc, char **argv)
|
||||||
|
output_file (NULL, NULL, NULL, inname, &instat,
|
||||||
|
mode, backup);
|
||||||
|
}
|
||||||
|
- else
|
||||||
|
- output_file (outname, NULL, &tmpoutst, NULL, NULL,
|
||||||
|
- file_type | 0, backup);
|
||||||
|
+ else if (backup)
|
||||||
|
+ {
|
||||||
|
+ struct stat outstat;
|
||||||
|
+
|
||||||
|
+ if (stat_file (outname, &outstat) != 0)
|
||||||
|
+ say ("Cannot stat file %s, skipping backup\n", outname);
|
||||||
|
+ else
|
||||||
|
+ output_file (outname, NULL, &outstat, NULL, NULL,
|
||||||
|
+ file_type | 0, true);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
patch-2.7.6.tar.xz
(Stored with Git LFS)
Normal file
BIN
patch-2.7.6.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
16
patch-2.7.6.tar.xz.sig
Normal file
16
patch-2.7.6.tar.xz.sig
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQIcBAABAgAGBQJaed0dAAoJENW/n+sDE2U62ScQAK02GcPxJccBefkcuC6q/or9
|
||||||
|
f1im2lIpc1YJqxHmmhDeRu9twjuFycUV55hud+OroJe2xYKZrI6oUwJBldKTRfHu
|
||||||
|
whlhRzERO3U4z9pvi8XWbKvObsmqSBIgsM72oby4aPLCWk7IpJprR6BnRZdtnBg1
|
||||||
|
jzM3Yka8k01+dmVH2rsoSEGAe9sZbXJazBoYg8N/wHKe2+NY4W3esZ7flxQJ9RvB
|
||||||
|
GxjVU/KbyoNXIoFU4EnMalcLTZTHThhv2kQ1/cQZ+gt/1+f00DoieaUaIg3qB8jX
|
||||||
|
IqYE4GvXILgx8+REE3utt0zKv7pYGBNRkuACUE2hLZoY4SporJ0J63/7Y8zrzjxQ
|
||||||
|
GE27+DcjxBQGd1GnpO/Xb4kpqBGyn4KrlBIiHkhk2GgyBewpXPMog3cJki7A/1vz
|
||||||
|
Qb+JTY8PBqvOe7DmxW4Bp1vX6eOKn14FDQ7q3ZPjAd52Jtn7GUEt4etCduQh7ZNt
|
||||||
|
ElLLvpPro1wxG1bTbA3+TysCd+9XWWjwKJlPK5Jbdii0R73iy386UZGN1t1kmBzS
|
||||||
|
1mn3nh82z/XO9lPU3e1WP0BANAzTrNqA66ZbfQ9fIu6UO8R/+ygT7U5yie+X3xwP
|
||||||
|
kM6HR6oD0eDkqbPbOr8hey0kPG3FAWkZ47Oju5ad1ntUBFj4buLybEY0e08hncJS
|
||||||
|
gdt7wrbeKKxzdrcyQ1qy
|
||||||
|
=mjHo
|
||||||
|
-----END PGP SIGNATURE-----
|
611
patch.changes
Normal file
611
patch.changes
Normal file
@ -0,0 +1,611 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jul 30 12:19:54 UTC 2024 - Wolfgang Frisch <wolfgang.frisch@suse.com>
|
||||||
|
|
||||||
|
- CVE-2019-20633.patch: Fix double-free/OOB read in pch.c (bsc#1167721)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Feb 29 14:53:57 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||||
|
|
||||||
|
- Use %autosetup macro. Allows to eliminate the usage of deprecated
|
||||||
|
%patchN.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue May 24 14:16:43 UTC 2022 - Stephan Kulow <coolo@suse.com>
|
||||||
|
|
||||||
|
- Do not link unversioned file by URL
|
||||||
|
- Replace group keyring not intended for release checking with
|
||||||
|
(expired since 2018) public key of Andreas
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue May 10 16:41:54 UTC 2022 - Jean Delvare <jdelvare@suse.de>
|
||||||
|
|
||||||
|
- fix-swapping-fake-lines-in-pch_swap.patch: Fix swapping fake
|
||||||
|
lines in pch_swap. This bug was causing a double free leading to
|
||||||
|
a crash (boo#1080985 CVE-2018-6952).
|
||||||
|
- abort-when-cleaning-up-fails.patch: Abort when cleaning up fails.
|
||||||
|
This bug could cause an infinite loop when a patch wouldn't
|
||||||
|
apply, leading to a segmentation fault (boo#1111572).
|
||||||
|
- dont-follow-symlinks-unless-asked.patch: Don't follow symlinks
|
||||||
|
unless --follow-symlinks is given. This increases the security
|
||||||
|
against malicious patches (boo#1142041 CVE-2019-13636).
|
||||||
|
- pass-the-correct-stat-to-backup-files.patch: Pass the correct
|
||||||
|
stat to backup files. This bug would occasionally cause backup
|
||||||
|
files to be missing when all hunks failed to apply (boo#1198106).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Sep 29 10:33:36 UTC 2021 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||||
|
|
||||||
|
- Do not query %{verbose} to add V=1 or not: verbose changed
|
||||||
|
semantics between rpm versions and there is currently no variant
|
||||||
|
supporting rpm < 4.17 and rpm >= 4.17.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed May 9 09:52:04 UTC 2018 - jdelvare@suse.de
|
||||||
|
|
||||||
|
- ed-style-07-dont-leak-tmp-file.patch,
|
||||||
|
ed-style-08-dont-leak-tmp-file-multi.patch: Fix temporary file
|
||||||
|
leak when applying ed-style patches (bsc#1092500,
|
||||||
|
savannah#53820).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Apr 18 11:16:34 CEST 2018 - jdelvare@suse.de
|
||||||
|
|
||||||
|
- Add ed as BuildRequires so ed-style patches can be checked by
|
||||||
|
the test suite.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Apr 18 08:53:00 UTC 2018 - jdelvare@suse.de
|
||||||
|
|
||||||
|
Fix CVE-2018-1000156 (bsc#1088420, savannah#53566).
|
||||||
|
- ed-style-01-missing-input-files.patch: Allow input files to be
|
||||||
|
missing for ed-style patches.
|
||||||
|
- ed-style-02-fix-arbitrary-command-execution.patch,
|
||||||
|
ed-style-03-update-test-Makefile.patch: Fix arbitrary command
|
||||||
|
execution in ed-style patches.
|
||||||
|
- ed-style-04-invoke-ed-directly.patch: Invoke ed directly instead
|
||||||
|
of using the shell.
|
||||||
|
- ed-style-05-minor-cleanups.patch: Minor cleanups in do_ed_script.
|
||||||
|
- ed-style-06-fix-test-failure.patch: Fix 'ed-style' test failure.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Mar 22 09:43:43 CET 2018 - jdelvare@suse.de
|
||||||
|
|
||||||
|
- Move COPYING from %doc to %license.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Mar 21 16:44:09 CET 2018 - jdelvare@suse.de
|
||||||
|
|
||||||
|
- Add AUTHORS and COPYING to %doc.
|
||||||
|
- fix-segfault-mangled-rename.patch: Fix segfault with mangled
|
||||||
|
rename patch (bsc#1080951, CVE-2018-6951, savannah#53132).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Feb 7 18:43:51 UTC 2018 - astieger@suse.com
|
||||||
|
|
||||||
|
- patch 2.7.6:
|
||||||
|
* Files specified on the command line are no longer verified to
|
||||||
|
be inside the current working directory, so commands like
|
||||||
|
"patch -i foo.diff ../foo" will work again
|
||||||
|
* Fixes CVE-2016-10713 (Out-of-bounds access within
|
||||||
|
pch_write_line() in pch.c could possibly lead to DoS via a
|
||||||
|
crafted input file; bsc#1080918)
|
||||||
|
* Various fixes
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Mar 7 10:42:46 CET 2015 - jdelvare@suse.de
|
||||||
|
|
||||||
|
- patch 2.7.5
|
||||||
|
Fixes a functional regression introduced by the previous update.
|
||||||
|
+ Patching through symbolic links works again, as long as the
|
||||||
|
target is within the working tree.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Feb 16 11:51:58 CET 2015 - jdelvare@suse.de
|
||||||
|
|
||||||
|
- patch 2.7.4
|
||||||
|
Fixes a functional regression introduced by the previous security
|
||||||
|
fix. The security fix would forbid legitimate use cases of
|
||||||
|
relative symbolic links.
|
||||||
|
[boo#918058]
|
||||||
|
+ Allow arbitrary symlink targets again.
|
||||||
|
+ Do not change permissions if there isn't an explicit mode
|
||||||
|
change.
|
||||||
|
+ Fix indentation heuristic for context diffs.
|
||||||
|
- Please also note that the previous update fixed security bugs
|
||||||
|
boo#915328 and boo#915329 even though it did not say so.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jan 23 00:58:35 UTC 2015 - andreas.stieger@gmx.de
|
||||||
|
|
||||||
|
- patch 2.7.3
|
||||||
|
Contains a security fix for a directory traversal flaw when
|
||||||
|
handling git-style patches. This could allow an attacker to
|
||||||
|
overwrite arbitrary files by applying a specially crafted patch.
|
||||||
|
[boo#913678] [CVE-2015-1196]
|
||||||
|
+ With git-style patches, symlinks that point outside the working
|
||||||
|
directory will no longer be created (CVE-2015-1196).
|
||||||
|
+ When a file isn't being deleted because the file contents don't
|
||||||
|
match the patch, the resulting message is now "Not deleting
|
||||||
|
file ... as content differs from patch" instead of "File ...
|
||||||
|
is not empty after patch; not deleting".
|
||||||
|
+ Function names in hunks (from diff -p) are now preserved in
|
||||||
|
reject files
|
||||||
|
This change was previously added as a patch. [boo#904519]
|
||||||
|
- Version 2.7.2 differed from the above only slightly.
|
||||||
|
- packaging changes:
|
||||||
|
+ Verify source signatures
|
||||||
|
+ Removed patches now upstream:
|
||||||
|
* error-report-crash.patch
|
||||||
|
* reject-print-function-01-drop-useless-test.patch
|
||||||
|
* reject-print-function-02-handle-unified-format.patch
|
||||||
|
+ run spec-cleaner
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Nov 10 11:37:03 CET 2014 - jdelvare@suse.de
|
||||||
|
|
||||||
|
- reject-print-function-01-drop-useless-test.patch: Drop useless
|
||||||
|
test in another_hunk().
|
||||||
|
- reject-print-function-02-handle-unified-format.patch: Preserve C
|
||||||
|
function name in unified rejects (bnc#904519).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue May 20 07:44:03 UTC 2014 - schwab@suse.de
|
||||||
|
|
||||||
|
- error-report-crash.patch: fix crash after reporting error during option
|
||||||
|
parsing
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Dec 6 16:19:25 CET 2012 - jdelvare@suse.de
|
||||||
|
|
||||||
|
- Back to bz2 archive format as old products lack xz.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Dec 6 15:34:14 CET 2012 - jdelvare@suse.de
|
||||||
|
|
||||||
|
- Version 2.7.1
|
||||||
|
+ Patch no longer gets a failed assertion for certain mangled
|
||||||
|
patches.
|
||||||
|
+ Ignore destination file names that are absolute or that contain
|
||||||
|
a component of "..", except when working in the root directory.
|
||||||
|
This addresses CVE-2010-4651.
|
||||||
|
+ Support for most features of the "diff --git" format, including
|
||||||
|
renames and copies, permission changes, and symlink diffs.
|
||||||
|
Binary diffs are not supported yet; patch will complain and
|
||||||
|
skip them.
|
||||||
|
+ Support for double-quoted filenames: when a filename starts
|
||||||
|
with a double quote, it is interpreted as a C string literal.
|
||||||
|
The escape sequences \\, \", \a, \b, \f, \n, \r, \t, \v, and
|
||||||
|
\ooo (a three-digit octal number between 0 and 255) are
|
||||||
|
recognized.
|
||||||
|
+ Refuse to apply a normal patch to a symlink. (Previous versions
|
||||||
|
of patch were replacing the symlink with a regular file.)
|
||||||
|
+ New --follow-symlinks option to allow to treat symlinks as
|
||||||
|
files: this was patch's behavior before version 2.7.
|
||||||
|
+ When trying to modify a read-only file, warn about the
|
||||||
|
potential problem by default. The --read-only command line
|
||||||
|
option allows to change this behavior.
|
||||||
|
+ Files to be deleted are deleted once the entire input has been
|
||||||
|
processed, not immediately. This fixes a bug with numbered
|
||||||
|
backup files.
|
||||||
|
+ When a timestamp specifies a time zone, honor that instead of
|
||||||
|
assuming the local time zone (--set-date) or Universal
|
||||||
|
Coordinated Time (--set-utc).
|
||||||
|
+ Support for nanosecond precision timestamps.
|
||||||
|
+ Many bug fixes.
|
||||||
|
+ Clarify the message printed when a patch is expected to empty
|
||||||
|
out and delete a file, but the file does not become empty.
|
||||||
|
+ Various improvements to messages when applying a patch to a
|
||||||
|
file of different type (regular file vs. symlink), when there
|
||||||
|
are line ending differences (LF vs. CRLF), and when in
|
||||||
|
--dry-run mode.
|
||||||
|
+ Ignore when extended attributes cannot be preserved because
|
||||||
|
they are unsupported or because permission to set them is
|
||||||
|
denied.
|
||||||
|
- patch-revert-e0f70752.patch: Dropped, original bug fixed
|
||||||
|
upstream.
|
||||||
|
- patch-stdio.in.patch: Dropped, merged upstream.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jul 17 08:40:27 UTC 2012 - aj@suse.de
|
||||||
|
|
||||||
|
- patch-stdio.in.patch:
|
||||||
|
Fix build with missing gets declaration (glibc 2.16)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Apr 6 14:22:12 CEST 2012 - jdelvare@suse.de
|
||||||
|
|
||||||
|
- patch-revert-e0f70752.patch: Revert broken upstream commit
|
||||||
|
(bnc#755136).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Apr 4 19:03:25 CEST 2012 - jdelvare@suse.de
|
||||||
|
|
||||||
|
- Version 2.6.1.136
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Oct 5 12:33:53 UTC 2011 - uli@suse.com
|
||||||
|
|
||||||
|
- cross-build fix: use %configure macro
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Apr 4 15:11:04 CEST 2011 - jdelvare@suse.de
|
||||||
|
|
||||||
|
- Version 2.6.1.116:
|
||||||
|
+ Patch now ignores destination file names that are absolute or
|
||||||
|
that contain a component of ".." (CVE-2010-4651, bnc#662957).
|
||||||
|
- Drop unified-reject-files-compat.diff. Compatibility has been
|
||||||
|
provided for the past 18 months, hopefully nobody is relying on
|
||||||
|
it any longer.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jul 2 06:57:49 UTC 2010 - jengelh@medozas.de
|
||||||
|
|
||||||
|
- Use %_smp_mflags
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed May 5 01:28:12 CEST 2010 - agruen@suse.de
|
||||||
|
|
||||||
|
- Version 2.6.1.81:
|
||||||
|
+ Fix backup file detection for deleted files
|
||||||
|
+ Allow to create and delete empty files
|
||||||
|
+ Stick to the best name in the reversed-patch check
|
||||||
|
+ Various portability improvements
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun May 2 15:57:54 CEST 2010 - agruen@suse.de
|
||||||
|
|
||||||
|
- Fix the linker library order.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun May 2 14:40:09 CEST 2010 - agruen@suse.de
|
||||||
|
|
||||||
|
- Be more verbose when %verbose is defined.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun May 2 14:01:47 CEST 2010 - agruen@suse.de
|
||||||
|
|
||||||
|
- Version 2.6.1.64:
|
||||||
|
+ Support for most features of the "diff --git" format: renames
|
||||||
|
and copies, permission changes, symlink diffs. (Binary diffs
|
||||||
|
are not supported yet; patch will complain and skip them.)
|
||||||
|
+ Support for double-quoted filenames: when a filename in a
|
||||||
|
context diff starts with a double quote, it is interpreted as
|
||||||
|
a C string literal. The escape sequences \\, \", \a, \b, \f, \n,
|
||||||
|
\r, \t, \v, and \ooo (a three-digit octal number between 0 and
|
||||||
|
255) are recognized.
|
||||||
|
+ Refuse to patch read-only files by default, or at least warn
|
||||||
|
when patching such files with --force or --batch.
|
||||||
|
+ Refuse to apply a normal patch to a symlink. (Previous
|
||||||
|
versions of patch were wrongly replacing the symlink with a
|
||||||
|
regular file.)
|
||||||
|
+ When a timestamp specifies a time zone, honor that instead of
|
||||||
|
assuming the local time zone (--set-date) or Universal
|
||||||
|
Coordinated Time (--set-utc).
|
||||||
|
+ Support for nanosecond precision timestamps.
|
||||||
|
+ Many portability and bug fixes.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Jan 31 16:22:05 CET 2010 - agruen@suse.de
|
||||||
|
|
||||||
|
- Version 2.6.1.9:
|
||||||
|
+ Skip another ed-dependent test when ed isn't installed.
|
||||||
|
+ More portability fixes.
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Dec 30 17:14:24 CET 2009 - agruen@suse.de
|
||||||
|
|
||||||
|
- Version 2.6.1:
|
||||||
|
+ Support for diff3(1) style merges which show the old, original,
|
||||||
|
and new lines of a conflict has been added (--merge=diff3).
|
||||||
|
The default still is the merge(1) format (--merge or
|
||||||
|
--merge=merge).
|
||||||
|
+ Bug and portability fixes.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Dec 6 17:32:57 CET 2009 - jengelh
|
||||||
|
|
||||||
|
- enable parallel building
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Nov 13 15:45:06 CET 2009 - agruen@suse.de
|
||||||
|
|
||||||
|
- Version 2.6.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Sep 7 13:30:46 CEST 2009 - agruen@suse.de
|
||||||
|
|
||||||
|
- Version 2.5.9.122:
|
||||||
|
+ Try to preserve the owning group of patched files.
|
||||||
|
- Add --unified-reject-files backwards-compatibility patch to
|
||||||
|
older SUSE versions of patch.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jul 20 10:12:48 CEST 2009 - agruen@suse.de
|
||||||
|
|
||||||
|
- Version 2.5.9.120:
|
||||||
|
+ When copying files, use full_write() from gnulib instead of
|
||||||
|
write().
|
||||||
|
+ The -m option hasn't been officially allocated yet. Use only
|
||||||
|
the long form for now (--merge).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jun 19 08:33:32 CEST 2009 - agruen@suse.de
|
||||||
|
|
||||||
|
- Version 2.5.9.118:
|
||||||
|
+ Change the default value of PATCH_GET to 0.
|
||||||
|
+ When merging, make sure that hunks will not end up "out of order"
|
||||||
|
+ When the file to patch is specified on the command line,
|
||||||
|
apply all patches to that file
|
||||||
|
+ Some portability fixes/improvements
|
||||||
|
+ Don't fail when removing nonexistent files in move_file
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Apr 8 16:47:49 CEST 2009 - agruen@suse.de
|
||||||
|
|
||||||
|
- Version 2.5.9.109:
|
||||||
|
+ Preserve timestamps in reject files.
|
||||||
|
+ Add support for sending output to standard output.
|
||||||
|
+ Allow special characters in filenames read interactively.
|
||||||
|
+ Don't forget to NUL terminate ptimestr in fetchname().
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Apr 7 14:29:16 CEST 2009 - agruen@suse.de
|
||||||
|
|
||||||
|
- Version 2.5.9.104: timestamp parsing fix, 64-bit fix.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Apr 6 18:59:55 CEST 2009 - agruen@suse.de
|
||||||
|
|
||||||
|
- Version 2.5.9.97: Another bugfix.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Apr 6 15:04:50 CEST 2009 - agruen@suse.de
|
||||||
|
|
||||||
|
- Version 2.5.9.95: Gnulib update, bug fixes.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Apr 3 22:35:33 CEST 2009 - agruen@suse.de
|
||||||
|
|
||||||
|
- Update to version patch-2.5.9.77: updated manpage and NEWS, no
|
||||||
|
strict depenency on ed in the test suite anymore, and slightly
|
||||||
|
improved handling of asymmetric hunks.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Apr 2 16:21:14 CEST 2009 - agruen@suse.de
|
||||||
|
|
||||||
|
- Update to version patch-2.5.9.69 which has all our patches
|
||||||
|
merged in one form or anther, along with many other fixes and
|
||||||
|
improvements (see NEWS).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Feb 24 12:56:06 CET 2009 - agruen@suse.de
|
||||||
|
|
||||||
|
- Include patch headers in reject files so that they form proper
|
||||||
|
patches themselves.
|
||||||
|
- Rewrite the unified reject files patch; this is much cleaner
|
||||||
|
now.
|
||||||
|
- Add an improved strategy for locating merges.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Feb 3 06:10:49 CET 2009 - agruen@suse.de
|
||||||
|
|
||||||
|
- Implement diff3-style merges (including several fixes and
|
||||||
|
improvements).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Apr 23 10:53:19 CEST 2008 - agruen@suse.de
|
||||||
|
|
||||||
|
- remember-backup-files.diff: Fix bug when a file is touched by
|
||||||
|
the same patch more than twice. Move the test cases from the
|
||||||
|
patch header into separate files.
|
||||||
|
- patch-2.5.9-cat_if_device.diff: No need to remember the device
|
||||||
|
we write to as a backup file.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Nov 2 01:57:03 CET 2007 - agruen@suse.de
|
||||||
|
|
||||||
|
- Patch fails to apply hunks with asymmetric context correctly.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jan 25 21:30:47 CET 2006 - mls@suse.de
|
||||||
|
|
||||||
|
- converted neededforbuild to BuildRequires
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Jan 12 07:52:31 CET 2006 - agruen@suse.de
|
||||||
|
|
||||||
|
- remember-backup-files.diff: Fix case where a patch modifies a
|
||||||
|
read-only file more than once while --backup is used (test case
|
||||||
|
in the patch header).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Aug 18 18:09:59 CEST 2005 - mmj@suse.de
|
||||||
|
|
||||||
|
- --reject-unified is called --unified-reject-files [#105151]
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jun 29 13:50:06 CEST 2005 - mmj@suse.de
|
||||||
|
|
||||||
|
- Don't compile with -f-signed-char [#93883]
|
||||||
|
- Don't strip explicitly
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jan 4 21:11:54 CET 2005 - mmj@suse.de
|
||||||
|
|
||||||
|
- Add patch to make patch able to write reject files to devices,
|
||||||
|
named pipes and sockets [#45794]
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Jan 25 02:30:00 CET 2004 - agruen@suse.de
|
||||||
|
|
||||||
|
- Add --reject-unified option to produce unified reject files:
|
||||||
|
Before, unified reject files were produced if the patch itself
|
||||||
|
was unified; this could sometimes have been annoying.
|
||||||
|
- If a patch with C function names (diff -p) has rejects, include
|
||||||
|
the function names in the reject files.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Jan 11 11:17:55 CET 2004 - adrian@suse.de
|
||||||
|
|
||||||
|
- add %defattr
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Oct 7 15:03:22 CEST 2003 - agruen@suse.de
|
||||||
|
|
||||||
|
- remember-backup-files: Also include the file timestamps in the
|
||||||
|
hash table for non-POSIX-compliant systems that don't guarantee
|
||||||
|
that i_dev + i_ino uniquely identifies a file.
|
||||||
|
- #32031: Create --global-reject-file even if --dry-run is
|
||||||
|
specified. Add a missing '\n'.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jul 16 15:21:44 CEST 2003 - agruen@suse.de
|
||||||
|
|
||||||
|
- Replace trailing-cr-fix.diff with official upstream version that
|
||||||
|
fixes this bug differently.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jun 30 13:30:33 CEST 2003 - agruen@suse.de
|
||||||
|
|
||||||
|
- trailing-cr-fix.diff: Fix a bug in carriage return detection
|
||||||
|
(DOS files) in the unified diff path.
|
||||||
|
- Disable patch that adds comments to C preprocessor style
|
||||||
|
merges, as specified by POSIX.1-2001.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jun 25 16:46:41 CEST 2003 - agruen@suse.de
|
||||||
|
|
||||||
|
- Fix bug introduced on June 5 that broke remember-backup-files.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jun 24 17:35:09 CEST 2003 - agruen@suse.de
|
||||||
|
|
||||||
|
- smart-reject-file-format.diff: Work around a special case in
|
||||||
|
which patches are not terminated with a '^' in the internal
|
||||||
|
representation. The resulting error message was "internal error
|
||||||
|
in abort_hunk".
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Jun 5 09:38:17 CEST 2003 - agruen@suse.de
|
||||||
|
|
||||||
|
- Temporary reject file logic: Ooops, now must only close the
|
||||||
|
temporary reject file after processing all patches, instead of
|
||||||
|
after each patch.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Jun 5 01:00:38 CEST 2003 - agruen@suse.de
|
||||||
|
|
||||||
|
- Upgrade to 2.5.9: Several fixes, obsoletes
|
||||||
|
rename-same-file.patch.
|
||||||
|
- Fix and adapt global-reject-file patch:
|
||||||
|
+ The global reject file included corrupted headers for each
|
||||||
|
rejected hunk, instead of one header for each file with
|
||||||
|
rejects.
|
||||||
|
+ Rename --global-reject to --global-reject-file.
|
||||||
|
+ Simplify temporary reject file logic.
|
||||||
|
+ Adapt to unified-reject-files patch (which has different
|
||||||
|
headers).
|
||||||
|
+ Add entry in man page.
|
||||||
|
- Fix a bug in smart-reject-file-format: Files that are created
|
||||||
|
are identified by `-0,0'; before the patch was generating
|
||||||
|
`-1,0' in reject files.
|
||||||
|
- Switch remember-backup-files.diff over to use gnulib's hash
|
||||||
|
tables instead of glibc's binary trees, requested from upstream
|
||||||
|
to ensure greater portability.
|
||||||
|
- Add /* SYM */ comment to #endif lines for patch -D SYM, too.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Apr 9 19:33:59 CEST 2003 - agruen@suse.de
|
||||||
|
|
||||||
|
- Fix another bug with hard links and backup file generation.
|
||||||
|
- Fix backup file generation if the same file appears in the
|
||||||
|
patch more than once.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Mar 26 14:00:55 CET 2003 - mmj@suse.de
|
||||||
|
|
||||||
|
- Update to 2.5.8:
|
||||||
|
+ Bugfixes
|
||||||
|
+ patch -D now outputs preprocessor lines without comments, as
|
||||||
|
required by POSIX 1003.1-2001
|
||||||
|
+ File names in context patches may now contain spaces, so long
|
||||||
|
as the context patch headers use a tab to separate the file name
|
||||||
|
from the time stamp
|
||||||
|
+ Perforce is now supported
|
||||||
|
+ Patch lines beginning with "#" are comments and are ignored
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jan 15 16:50:57 CET 2003 - agruen@suse.de
|
||||||
|
|
||||||
|
- Fix a bug with hardlinks (see rename-same-file.patch)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Sep 17 17:34:28 CEST 2002 - ro@suse.de
|
||||||
|
|
||||||
|
- removed bogus self-provides
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Feb 6 12:05:34 CET 2002 - coolo@suse.de
|
||||||
|
|
||||||
|
- called suse_update_config
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jun 25 12:46:18 CEST 2001 - uli@suse.de
|
||||||
|
|
||||||
|
- added patch adding "--global-reject" option by ak@suse.de
|
||||||
|
- bzipped tarball
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Mar 6 20:36:46 CET 2001 - bk@suse.de
|
||||||
|
|
||||||
|
- update to 2.5.4, added 2 patches from PLD and use buildroot
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Nov 8 17:41:23 CET 2000 - uli@suse.de
|
||||||
|
|
||||||
|
- now builds with -D_GNU_SOURCE, should avoid miscompilation that
|
||||||
|
breaks LFS support
|
||||||
|
- added fix for offset output by Alessandro Rubini
|
||||||
|
- added fix and enhancement for --ifdef by Pete Buechler
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Feb 27 20:16:11 CET 2000 - @suse.de
|
||||||
|
|
||||||
|
- added missing CFLAGS quotes.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Feb 27 19:07:58 CET 2000 - bk@suse.de
|
||||||
|
|
||||||
|
- added PPC fixes by Uli back again (-fsigned-char, CPPFLAGS)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Feb 25 17:44:41 CET 2000 - schwab@suse.de
|
||||||
|
|
||||||
|
- Specfile cleanup, get rid of Makefile.Linux
|
||||||
|
- /usr/man -> /usr/share/man
|
||||||
|
- Add group tag.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Sep 13 17:23:57 CEST 1999 - bs@suse.de
|
||||||
|
|
||||||
|
- ran old prepare_spec on spec file to switch to new prepare_spec.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Aug 18 12:13:35 MEST 1999 - uli@suse.de
|
||||||
|
|
||||||
|
- fixed for PPC (-fsigned-char, CPPFLAGS)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Mar 16 14:58:42 MET 1999 - ro@suse.de
|
||||||
|
|
||||||
|
- update to 2.5.3 using diff from jurix
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jan 13 15:45:28 MET 1999 - bs@suse.de
|
||||||
|
|
||||||
|
- applied patch from Egbert Eich (problems with non existing files fixed)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Nov 5 00:19:13 MET 1998 - ro@suse.de
|
||||||
|
|
||||||
|
- use libc's basename() for glibc
|
||||||
|
|
476
patch.keyring
Normal file
476
patch.keyring
Normal file
@ -0,0 +1,476 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
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
|
||||||
|
=C+9j
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
76
patch.spec
Normal file
76
patch.spec
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
#
|
||||||
|
# spec file for package patch
|
||||||
|
#
|
||||||
|
# Copyright (c) 2024 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
Name: patch
|
||||||
|
Version: 2.7.6
|
||||||
|
Release: 0
|
||||||
|
Summary: GNU patch
|
||||||
|
License: GPL-3.0-or-later
|
||||||
|
Group: Productivity/Text/Utilities
|
||||||
|
URL: http://ftp.gnu.org/gnu/patch/
|
||||||
|
Source: http://ftp.gnu.org/gnu/patch/%{name}-%{version}.tar.xz
|
||||||
|
Source2: http://ftp.gnu.org/gnu/patch/%{name}-%{version}.tar.xz.sig
|
||||||
|
# https://savannah.gnu.org/people/viewgpg.php?user_id=15000
|
||||||
|
Source3: patch.keyring
|
||||||
|
Patch1: fix-segfault-mangled-rename.patch
|
||||||
|
Patch2: ed-style-01-missing-input-files.patch
|
||||||
|
Patch3: ed-style-02-fix-arbitrary-command-execution.patch
|
||||||
|
Patch4: ed-style-03-update-test-Makefile.patch
|
||||||
|
Patch5: ed-style-04-invoke-ed-directly.patch
|
||||||
|
Patch6: ed-style-05-minor-cleanups.patch
|
||||||
|
Patch7: ed-style-06-fix-test-failure.patch
|
||||||
|
Patch8: ed-style-07-dont-leak-tmp-file.patch
|
||||||
|
Patch9: ed-style-08-dont-leak-tmp-file-multi.patch
|
||||||
|
Patch10: fix-swapping-fake-lines-in-pch_swap.patch
|
||||||
|
Patch11: abort-when-cleaning-up-fails.patch
|
||||||
|
Patch12: dont-follow-symlinks-unless-asked.patch
|
||||||
|
Patch13: pass-the-correct-stat-to-backup-files.patch
|
||||||
|
Patch14: CVE-2019-20633.patch
|
||||||
|
# See bnc#662957. The fix for CVE-2010-4651 breaks the way interdiff was
|
||||||
|
# invoking patch, so interdiff had to be fixed too.
|
||||||
|
Conflicts: patchutils < 0.3.2
|
||||||
|
BuildRequires: ed
|
||||||
|
%if 0%{?suse_version} < 1220
|
||||||
|
BuildRequires: xz
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description
|
||||||
|
The GNU patch program is used to apply diffs between original and
|
||||||
|
changed files (generated by the diff command) to the original files.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
export CFLAGS="%{optflags} -Wall -O2 -pipe"
|
||||||
|
%configure
|
||||||
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
|
%check
|
||||||
|
make %{?_smp_mflags} check
|
||||||
|
|
||||||
|
%install
|
||||||
|
make install DESTDIR=%{buildroot}
|
||||||
|
|
||||||
|
%files
|
||||||
|
%doc AUTHORS NEWS README
|
||||||
|
%license COPYING
|
||||||
|
%{_bindir}/patch
|
||||||
|
%{_mandir}/man1/patch.1%{ext_man}
|
||||||
|
|
||||||
|
%changelog
|
Loading…
Reference in New Issue
Block a user