diff options
author | Sami Kerola | 2016-04-16 18:43:01 +0200 |
---|---|---|
committer | Sami Kerola | 2016-04-17 00:09:26 +0200 |
commit | 4b0b416acb182576ab1000a1df1ad3722a25f071 (patch) | |
tree | 609d460b7a132bd524b3d9c27541fcb7fea8a6c3 /term-utils/script.c | |
parent | sulogin: make fopen O_CLOEXEC specifier usage portable (diff) | |
download | kernel-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.c | 3 |
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)) |