X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=image.c;h=ed498ed6562ce832080410a4fc25a9378aeb4727;hp=9f253a1dfb9a65461e69163cc4f995cca880bdf2;hb=HEAD;hpb=e9ef9da90a206204b283dacd15c35bd3fd1fe5c9 diff --git a/image.c b/image.c index 9f253a1d..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]; @@ -970,46 +970,28 @@ imageformat_t; imageformat_t imageformats_tenebrae[] = { {"override/%s.tga", LoadTGA_BGRA}, - {"override/%s.TGA", LoadTGA_BGRA}, {"override/%s.png", PNG_LoadImage_BGRA}, - {"override/%s.PNG", PNG_LoadImage_BGRA}, {"override/%s.jpg", JPEG_LoadImage_BGRA}, - {"override/%s.JPG", JPEG_LoadImage_BGRA}, {"override/%s.pcx", LoadPCX_BGRA}, - {"override/%s.PCX", LoadPCX_BGRA}, {"%s.tga", LoadTGA_BGRA}, - {"%s.TGA", LoadTGA_BGRA}, {"%s.png", PNG_LoadImage_BGRA}, - {"%s.PNG", PNG_LoadImage_BGRA}, {"%s.jpg", JPEG_LoadImage_BGRA}, - {"%s.JPG", JPEG_LoadImage_BGRA}, {"%s.pcx", LoadPCX_BGRA}, - {"%s.PCX", LoadPCX_BGRA}, {NULL, NULL} }; imageformat_t imageformats_nopath[] = { {"override/%s.tga", LoadTGA_BGRA}, - {"override/%s.TGA", LoadTGA_BGRA}, {"override/%s.png", PNG_LoadImage_BGRA}, - {"override/%s.PNG", PNG_LoadImage_BGRA}, {"override/%s.jpg", JPEG_LoadImage_BGRA}, - {"override/%s.JPG", JPEG_LoadImage_BGRA}, {"textures/%s.tga", LoadTGA_BGRA}, - {"textures/%s.TGA", LoadTGA_BGRA}, {"textures/%s.png", PNG_LoadImage_BGRA}, - {"textures/%s.PNG", PNG_LoadImage_BGRA}, {"textures/%s.jpg", JPEG_LoadImage_BGRA}, - {"textures/%s.JPG", JPEG_LoadImage_BGRA}, {"%s.tga", LoadTGA_BGRA}, - {"%s.TGA", LoadTGA_BGRA}, {"%s.png", PNG_LoadImage_BGRA}, - {"%s.PNG", PNG_LoadImage_BGRA}, {"%s.jpg", JPEG_LoadImage_BGRA}, - {"%s.JPG", JPEG_LoadImage_BGRA}, {"%s.pcx", LoadPCX_BGRA}, - {"%s.PCX", LoadPCX_BGRA}, {NULL, NULL} }; @@ -1021,58 +1003,39 @@ imageformat_t imageformats_nopath[] = imageformat_t imageformats_dq[] = { {"%s.tga", LoadTGA_BGRA}, - {"%s.TGA", LoadTGA_BGRA}, {"%s.jpg", JPEG_LoadImage_BGRA}, - {"%s.JPG", JPEG_LoadImage_BGRA}, {"texturemaps/%s.tga", LoadTGA_BGRA}, - {"texturemaps/%s.TGA", LoadTGA_BGRA}, {"texturemaps/%s.jpg", JPEG_LoadImage_BGRA}, - {"texturemaps/%s.JPG", JPEG_LoadImage_BGRA}, {NULL, NULL} }; imageformat_t imageformats_textures[] = { {"%s.tga", LoadTGA_BGRA}, - {"%s.TGA", LoadTGA_BGRA}, {"%s.png", PNG_LoadImage_BGRA}, - {"%s.PNG", PNG_LoadImage_BGRA}, {"%s.jpg", JPEG_LoadImage_BGRA}, - {"%s.JPG", JPEG_LoadImage_BGRA}, {"%s.pcx", LoadPCX_BGRA}, - {"%s.PCX", LoadPCX_BGRA}, {"%s.wal", LoadWAL_BGRA}, - {"%s.WAL", LoadWAL_BGRA}, {NULL, NULL} }; imageformat_t imageformats_gfx[] = { {"%s.tga", LoadTGA_BGRA}, - {"%s.TGA", LoadTGA_BGRA}, {"%s.png", PNG_LoadImage_BGRA}, - {"%s.PNG", PNG_LoadImage_BGRA}, {"%s.jpg", JPEG_LoadImage_BGRA}, - {"%s.JPG", JPEG_LoadImage_BGRA}, {"%s.pcx", LoadPCX_BGRA}, - {"%s.PCX", LoadPCX_BGRA}, {"%s.lmp", LoadLMP_BGRA}, - {"%s.LMP", LoadLMP_BGRA}, {NULL, NULL} }; imageformat_t imageformats_other[] = { {"%s.tga", LoadTGA_BGRA}, - {"%s.TGA", LoadTGA_BGRA}, {"%s.png", PNG_LoadImage_BGRA}, - {"%s.PNG", PNG_LoadImage_BGRA}, {"%s.jpg", JPEG_LoadImage_BGRA}, - {"%s.JPG", JPEG_LoadImage_BGRA}, {"%s.pcx", LoadPCX_BGRA}, - {"%s.PCX", LoadPCX_BGRA}, {"%s.lmp", LoadLMP_BGRA}, - {"%s.LMP", LoadLMP_BGRA}, {NULL, NULL} }; @@ -1096,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; @@ -1121,8 +1084,10 @@ unsigned char *loadimagepixelsbgra (const char *filename, qbool complain, qbool for (format = firstformat;format->formatstring;format++) { dpsnprintf (name, sizeof(name), format->formatstring, basename); - f = FS_LoadFile(name, tempmempool, true, &filesize); - if (f) + + FS_SanitizePath(name); + + if(FS_FileExists(name) && (f = FS_LoadFile(name, tempmempool, true, &filesize)) != NULL) { mymiplevel = miplevel ? *miplevel : 0; image_width = 0;