From cd54f56b3662a25bebf7742ff936c2effec643b4 Mon Sep 17 00:00:00 2001 From: svdijk Date: Wed, 8 May 2013 20:16:23 +0200 Subject: [PATCH] some more boundary checking --- src/refresh/files/jpeg.c | 2 +- src/refresh/files/pcx.c | 4 ++-- src/refresh/files/tga.c | 4 ++-- src/refresh/files/wal.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/refresh/files/jpeg.c b/src/refresh/files/jpeg.c index e73bb0bd..d672da7c 100644 --- a/src/refresh/files/jpeg.c +++ b/src/refresh/files/jpeg.c @@ -90,7 +90,7 @@ LoadJPG(char *origname, byte **pic, int *width, int *height) /* Add the extension */ len = strlen(filename); - if (strcmp(filename + len - 4, ".jpg")) + if (len >= 4 && strcmp(filename + len - 4, ".jpg")) { strncat(filename, ".jpg", sizeof(filename) - 1 - len); } diff --git a/src/refresh/files/pcx.c b/src/refresh/files/pcx.c index f1c9062f..51ab8f4f 100644 --- a/src/refresh/files/pcx.c +++ b/src/refresh/files/pcx.c @@ -42,8 +42,8 @@ LoadPCX(char *origname, byte **pic, byte **palette, int *width, int *height) filename[sizeof(filename) - 1] = '\0'; /* Add the extension */ - filelen = strlen(origname); - if (strcmp(filename + filelen - 4, ".pcx")) + filelen = strlen(filename); + if (filelen >= 4 && strcmp(filename + filelen - 4, ".pcx")) { strncat(filename, ".pcx", sizeof(filename) - 1 - filelen); } diff --git a/src/refresh/files/tga.c b/src/refresh/files/tga.c index b6c46d8d..ce6c4810 100644 --- a/src/refresh/files/tga.c +++ b/src/refresh/files/tga.c @@ -54,8 +54,8 @@ LoadTGA(char *origname, byte **pic, int *width, int *height) name[sizeof(name) - 1] = '\0'; /* Add the extension */ - len = strlen(origname); - if (strcmp(name + len - 4, ".tga")) + len = strlen(name); + if (len >= 4 && strcmp(name + len - 4, ".tga")) { strncat(name, ".tga", sizeof(name) - 1 - len); } diff --git a/src/refresh/files/wal.c b/src/refresh/files/wal.c index 48d341ef..2822bae0 100644 --- a/src/refresh/files/wal.c +++ b/src/refresh/files/wal.c @@ -40,7 +40,7 @@ LoadWal(char *origname) /* Add the extension */ len = strlen(name); - if (strcmp(name + len - 4, ".wal")) + if (len >= 4 && strcmp(name + len - 4, ".wal")) { strncat(name, ".wal", sizeof(name) - 1 - len); }