mscan: fix underrun in %F when filename doesn't contain three slashes

pull/170/head
Leah Neukirchen 4 years ago
parent 55035ad8b2
commit 513ac7d002

@ -465,13 +465,21 @@ oneline(char *file)
case 'F': case 'F':
{ {
char *e = file + strlen(file); char *e = file + strlen(file);
if (!msg)
goto empty;
while (file < e && *e != '/') while (file < e && *e != '/')
e--; e--;
if (file == e)
goto empty;
e--; e--;
while (file < e && *e != '/') while (file < e && *e != '/')
e--; e--;
while (file < e && *e == '/') while (file < e && *e == '/')
e--; e--;
if (file == e)
goto empty;
char *b = e; char *b = e;
e++; e++;
while (file < b && *b != '/') while (file < b && *b != '/')
@ -480,6 +488,11 @@ oneline(char *file)
b++; b++;
if (*b == '.') if (*b == '.')
b++; b++;
if (0) {
empty:
b = e = "";
}
if (w) { if (w) {
if (w < 0) if (w < 0)
w = -w; w = -w;

Loading…
Cancel
Save