23 lines
565 B
Diff
23 lines
565 B
Diff
Taken from Fedora
|
|
|
|
--- misc.c
|
|
+++ misc.c
|
|
@@ -135,11 +135,17 @@
|
|
char *fullpath (direntry)
|
|
struct direntry *direntry;
|
|
{
|
|
- static char result[PATHSIZE];
|
|
+ static char result[PATHSIZE+LFNAMESIZE+12]; /* Room for enough space.*/
|
|
combine (result,
|
|
direntry->dirlen != 0 ? direntry->dirname : "",
|
|
(direntry->namlen != 0) ? direntry->lfname : direntry->fname
|
|
);
|
|
+
|
|
+ if (strlen (result) >= PATHSIZE) {
|
|
+ prterror ('f', "Combined dirname and filename too long!\n");
|
|
+ *result = '\0';
|
|
+ }
|
|
+
|
|
return (result);
|
|
}
|
|
|