X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=fs.c;h=e682f6fa482942776d040aa0198388905dec0cc5;hb=16be238953e1d3f105bd5db66f65581cbd030121;hp=c7cc768152f629b5f336d79a051bab4c521b1548;hpb=70d44adf2a3c2f9e3801c1b15c21a390e74c9061;p=xonotic%2Fdarkplaces.git diff --git a/fs.c b/fs.c index c7cc7681..e682f6fa 100644 --- a/fs.c +++ b/fs.c @@ -587,8 +587,8 @@ static qboolean PK3_GetEndOfCentralDir (const char *packfile, int packhandle, pk Mem_Free (buffer); if ( - eocd->cdir_size < 0 || eocd->cdir_size > filesize || - eocd->cdir_offset < 0 || eocd->cdir_offset >= filesize || + eocd->cdir_size > filesize || + eocd->cdir_offset >= filesize || eocd->cdir_offset + eocd->cdir_size > filesize ) { @@ -1642,7 +1642,7 @@ FS_CheckGameDir const char *FS_CheckGameDir(const char *gamedir) { const char *ret; - char buf[8192]; + static char buf[8192]; char vabuf[1024]; if (FS_CheckNastyPath(gamedir, true)) @@ -1934,7 +1934,7 @@ static int FS_ChooseUserDir(userdirmode_t userdirmode, char *userdir, size_t use if(access(va(vabuf, sizeof(vabuf), "%s%s/", userdir, gamedirname1), W_OK | X_OK) >= 0) fd = 1; else - fd = 0; + fd = -1; #endif if(fd >= 0) { @@ -2715,7 +2715,15 @@ int FS_Close (qfile_t* file) if (file->filename) { if (file->flags & QFILE_FLAG_REMOVE) - remove(file->filename); + { + if (remove(file->filename) == -1) + { + // No need to report this. If removing a just + // written file failed, this most likely means + // someone else deleted it first - which we + // like. + } + } Mem_Free((void *) file->filename); } @@ -2751,7 +2759,7 @@ fs_offset_t FS_Write (qfile_t* file, const void* data, size_t datasize) { if (lseek (file->handle, file->buff_ind - file->buff_len, SEEK_CUR) == -1) { - Con_Printf("WARNING: could not seek in %s.\n"); + Con_Printf("WARNING: could not seek in %s.\n", file->filename); } } @@ -3342,7 +3350,7 @@ void FS_DefaultExtension (char *path, const char *extension, size_t size_path) // if path doesn't have a .EXT, append extension // (extension should include the .) - src = path + strlen(path) - 1; + src = path + strlen(path); while (*src != '/' && src != path) { @@ -3816,7 +3824,7 @@ qboolean FS_IsRegisteredQuakePack(const char *name) int diff; middle = (left + right) / 2; - diff = !strcmp_funct (pak->files[middle].name, "gfx/pop.lmp"); + diff = strcmp_funct (pak->files[middle].name, "gfx/pop.lmp"); // Found it if (!diff) @@ -3927,8 +3935,7 @@ unsigned char *FS_Deflate(const unsigned char *data, size_t size, size_t *deflat return NULL; } - if(deflated_size) - *deflated_size = (size_t)strm.total_out; + *deflated_size = (size_t)strm.total_out; memcpy(out, tmp, strm.total_out); Mem_Free(tmp); @@ -4042,8 +4049,7 @@ unsigned char *FS_Inflate(const unsigned char *data, size_t size, size_t *inflat memcpy(out, outbuf.data, outbuf.cursize); Mem_Free(outbuf.data); - if(inflated_size) - *inflated_size = (size_t)outbuf.cursize; + *inflated_size = (size_t)outbuf.cursize; return out; }