From 513ac7d002d196a8a3b61d8cf5ddee03cede0b94 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Fri, 17 Jan 2020 12:14:47 +0100 Subject: mscan: fix underrun in %F when filename doesn't contain three slashes --- mscan.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'mscan.c') diff --git a/mscan.c b/mscan.c index 9fd1f4d..6ae1628 100644 --- a/mscan.c +++ b/mscan.c @@ -465,13 +465,21 @@ oneline(char *file) case 'F': { char *e = file + strlen(file); + + if (!msg) + goto empty; + while (file < e && *e != '/') e--; + if (file == e) + goto empty; e--; while (file < e && *e != '/') e--; while (file < e && *e == '/') e--; + if (file == e) + goto empty; char *b = e; e++; while (file < b && *b != '/') @@ -480,6 +488,11 @@ oneline(char *file) b++; if (*b == '.') b++; + + if (0) { +empty: + b = e = ""; + } if (w) { if (w < 0) w = -w; -- cgit 1.4.1