From cbc9c8d8d3432b71f4692d2aa2bc316ccd249957 Mon Sep 17 00:00:00 2001 From: Baptiste Daroussin Date: Wed, 15 Jul 2015 18:49:15 +0000 Subject: [PATCH] Fix trimming spaces writing at index -1 if an empty string is passed Submitted by: Gennady Proskurin --- usr.bin/calendar/io.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/usr.bin/calendar/io.c b/usr.bin/calendar/io.c index 5e5c146459d..89863f45d7f 100644 --- a/usr.bin/calendar/io.c +++ b/usr.bin/calendar/io.c @@ -87,11 +87,16 @@ static void trimlr(char **buf) { char *walk = *buf; + char *last; while (isspace(*walk)) walk++; - while (isspace(walk[strlen(walk) -1])) - walk[strlen(walk) -1] = '\0'; + if (*walk != '\0') { + last = walk + strlen(walk) - 1; + while (last > walk && isspace(*last)) + last--; + *(last+1) = 0; + } *buf = walk; }