X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=image.c;h=15835797ecde5bf6c2df3ed18f4402a55a724a5d;hb=HEAD;hp=9f07ce60f174a955f89474114062eb19bb8358eb;hpb=5297b46dcb238b0e738e2bad7ea5b34413d361a8;p=xonotic%2Fdarkplaces.git diff --git a/image.c b/image.c index 9f07ce60..15835797 100644 --- a/image.c +++ b/image.c @@ -921,7 +921,7 @@ void Image_StripImageExtension (const char *in, char *out, size_t size_out) if (ext && (!strcmp(ext, "tga") || !strcmp(ext, "pcx") || !strcmp(ext, "lmp") || !strcmp(ext, "png") || !strcmp(ext, "jpg") || !strcmp(ext, "wal"))) FS_StripExtension(in, out, size_out); else - strlcpy(out, in, size_out); + dp_strlcpy(out, in, size_out); } static unsigned char image_linearfromsrgb[256]; @@ -1059,14 +1059,14 @@ unsigned char *loadimagepixelsbgra (const char *filename, qbool complain, qbool *c = '#'; path[0] = 0; name[0] = 0; - strlcpy(afterpath, basename, sizeof(afterpath)); + dp_strlcpy(afterpath, basename, sizeof(afterpath)); if (strchr(basename, '/')) { int i; for (i = 0;i < (int)sizeof(path)-1 && basename[i] != '/' && basename[i];i++) path[i] = basename[i]; path[i] = 0; - strlcpy(afterpath, basename + i + 1, sizeof(afterpath)); + dp_strlcpy(afterpath, basename + i + 1, sizeof(afterpath)); } if (gamemode == GAME_TENEBRAE) firstformat = imageformats_tenebrae; @@ -1084,6 +1084,9 @@ unsigned char *loadimagepixelsbgra (const char *filename, qbool complain, qbool for (format = firstformat;format->formatstring;format++) { dpsnprintf (name, sizeof(name), format->formatstring, basename); + + FS_SanitizePath(name); + if(FS_FileExists(name) && (f = FS_LoadFile(name, tempmempool, true, &filesize)) != NULL) { mymiplevel = miplevel ? *miplevel : 0;