From 7d4d519a5166acd852de68c3bfc442289d091b25 Mon Sep 17 00:00:00 2001 From: sin Date: Sat, 31 Aug 2013 21:53:11 +0100 Subject: [PATCH] Fix segfault in tail(1) We should not be looking at optarg, that's uninitialized. We are not using getopt. --- tail.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tail.c b/tail.c index 3fbd606..e45d924 100644 --- a/tail.c +++ b/tail.c @@ -21,11 +21,13 @@ main(int argc, char *argv[]) long n = 10; FILE *fp; void (*tail)(FILE *, const char *, long) = taketail; + char *lines; ARGBEGIN { case 'n': - n = abs(estrtol(EARGF(usage()), 0)); - if(optarg[0] == '+') + lines = EARGF(usage()); + n = abs(estrtol(lines, 0)); + if(lines[0] == '+') tail = dropinit; break; default: @@ -79,4 +81,3 @@ taketail(FILE *fp, const char *str, long n) free(ring); free(size); } -