bug-patch
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug-patch] Segfault with nonexisting file because of infinite loop


From: Martin Michlmayr
Subject: [bug-patch] Segfault with nonexisting file because of infinite loop
Date: Fri, 5 Apr 2019 14:47:46 +0700
User-agent: Mutt/1.10.1 (2018-07-13)

This happens with GNU patch 2.7.6 and the latest Git checkout:

- Save the attached patch file as "p".
- Make sure file 'R' does _not_ exist
- cat ~/p | patch -p3 R

patching file R
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file R.rej
./patch: **** Can't reopen file R : No such file or directory
./patch: **** Can't reopen file R : No such file or directory
./patch: **** Can't reopen file R : No such file or directory
...
./patch: **** Can't create file R.orig : Too many open files
./patch: **** Can't create file R.origzsh: done                cat p |
zsh: segmentation fault  ./patch -p3 R

Program received signal SIGSEGV, Segmentation fault.
_IO_vfprintf_internal (address@hidden <_IO_2_1_stderr_>, format=0x7ffff7f7099f 
"%s%s%s\n", ap=0x7fffff7ff5a0) at vfprintf.c:1315
1315    vfprintf.c: No such file or directory.
(gdb) where
#0  _IO_vfprintf_internal (address@hidden <_IO_2_1_stderr_>, 
format=0x7ffff7f7099f "%s%s%s\n", ap=0x7fffff7ff5a0) at vfprintf.c:1315
#1  0x00007ffff7e5b558 in locked_vfxprintf (address@hidden <_IO_2_1_stderr_>, 
fmt=<optimized out>, address@hidden "%s%s%s\n", 
    address@hidden) at fxprintf.c:30
#2  0x00007ffff7e5b6d9 in __fxprintf (address@hidden <_IO_2_1_stderr_>, 
address@hidden "%s%s%s\n") at fxprintf.c:74
#3  0x00007ffff7e58e8e in perror_internal (fp=0x7ffff7fa8680 <_IO_2_1_stderr_>, 
address@hidden " ", errnum=<optimized out>) at perror.c:39
#4  0x00007ffff7e58f0b in __GI_perror (address@hidden " ") at perror.c:67
#5  0x0000555555565c8d in pfatal (address@hidden "Can't create file %s") at 
util.c:958
#6  0x0000555555565fa0 in create_file (open_flags=<optimized out>, 
mode=<optimized out>, to_dir_known_to_exist=<optimized out>, file=<optimized 
out>)
    at util.c:569
#7  create_file (file=0x5555555e59a0 "R.orig", open_flags=<optimized out>, 
mode=33188, to_dir_known_to_exist=<optimized out>) at util.c:553
#8  0x00005555555661da in copy_file (address@hidden "R", address@hidden 
"R.orig", address@hidden, 
    address@hidden, mode=<optimized out>, address@hidden) at util.c:628
#9  0x000055555556638e in create_backup_copy (address@hidden "R", 
address@hidden "R.orig", address@hidden, 
    address@hidden) at util.c:309
#10 0x0000555555566796 in create_backup (to=0x55555558d480 "R", 
to_st=0x5555555902d8, leave_original=<optimized out>) at util.c:402
#11 0x000055555555da32 in output_files (st=0x0) at patch.c:1950
#12 0x000055555555e3b8 in fatal_exit (address@hidden) at patch.c:1979
#13 0x0000555555565ca0 in pfatal (address@hidden "Can't create file %s") at 
util.c:960
#14 0x0000555555565fa0 in create_file (open_flags=<optimized out>, 
mode=<optimized out>, to_dir_known_to_exist=<optimized out>, file=<optimized 
out>)
    at util.c:569
#15 create_file (file=0x5555555e5980 "R.orig", open_flags=<optimized out>, 
mode=33188, to_dir_known_to_exist=<optimized out>) at util.c:553
#16 0x00005555555661da in copy_file (address@hidden "R", address@hidden 
"R.orig", address@hidden, 
    address@hidden, mode=<optimized out>, address@hidden) at util.c:628
#17 0x000055555556638e in create_backup_copy (address@hidden "R", 
address@hidden "R.orig", address@hidden, 
    address@hidden) at util.c:309
#18 0x0000555555566796 in create_backup (to=0x55555558d480 "R", 
to_st=0x5555555902d8, leave_original=<optimized out>) at util.c:402
#19 0x000055555555da32 in output_files (st=0x0) at patch.c:1950

-- 
Martin Michlmayr
https://www.cyrius.com/

Attachment: p
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]