summaryrefslogtreecommitdiffstats
path: root/term-utils/script.c
diff options
context:
space:
mode:
authorSami Kerola2016-04-16 18:43:01 +0200
committerSami Kerola2016-04-17 00:09:26 +0200
commit4b0b416acb182576ab1000a1df1ad3722a25f071 (patch)
tree609d460b7a132bd524b3d9c27541fcb7fea8a6c3 /term-utils/script.c
parentsulogin: make fopen O_CLOEXEC specifier usage portable (diff)
downloadkernel-qcow2-util-linux-4b0b416acb182576ab1000a1df1ad3722a25f071.tar.gz
kernel-qcow2-util-linux-4b0b416acb182576ab1000a1df1ad3722a25f071.tar.xz
kernel-qcow2-util-linux-4b0b416acb182576ab1000a1df1ad3722a25f071.zip
script: avoid trying fclose(NULL)
Here is a one-liner to reproduce the issue. $ mkdir example && cd example && chmod 0500 . && script Script started, file is typescript script: cannot open typescript: Permission denied Script done, file is typescript Segmentation fault (core dumped) Addresses: https://bugs.launchpad.net/bugs/1537518 Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Diffstat (limited to 'term-utils/script.c')
-rw-r--r--term-utils/script.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/term-utils/script.c b/term-utils/script.c
index 279b9ecfe..d691c2231 100644
--- a/term-utils/script.c
+++ b/term-utils/script.c
@@ -205,7 +205,8 @@ static void __attribute__((__noreturn__)) done(struct script_control *ctl)
if (ctl->timingfp)
fclose(ctl->timingfp);
- fclose(ctl->typescriptfp);
+ if (ctl->typescriptfp)
+ fclose(ctl->typescriptfp);
if (ctl->rc_wanted) {
if (WIFSIGNALED(ctl->childstatus))