]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - fs.c
added DP_QC_TRACE_MOVETYPE_HITMODEL extension (and added DP_QC_TRACE_MOVETYPE_WORLDON...
[xonotic/darkplaces.git] / fs.c
diff --git a/fs.c b/fs.c
index b0c2de1e7c924d0f741f27e63f8cd92ada5d4a93..bbdaf2f6ac3fcad47abb44e78e4d5b797bafb678 100644 (file)
--- a/fs.c
+++ b/fs.c
@@ -751,7 +751,7 @@ void FS_AddGameDirectory (char *dir)
        {
                if (matchpattern(current->text, "*.pak", true))
                {
-                       sprintf (pakfile, "%s/%s", dir, current->text);
+                       snprintf (pakfile, sizeof (pakfile), "%s/%s", dir, current->text);
                        pak = FS_LoadPackPAK (pakfile);
                        if (pak)
                        {
@@ -770,7 +770,7 @@ void FS_AddGameDirectory (char *dir)
        {
                if (matchpattern(current->text, "*.pk3", true))
                {
-                       sprintf (pakfile, "%s/%s", dir, current->text);
+                       snprintf (pakfile, sizeof (pakfile), "%s/%s", dir, current->text);
                        pak = FS_LoadPackPK3 (pakfile);
                        if (pak)
                        {
@@ -1061,7 +1061,7 @@ qfile_t *FS_FOpenFile (const char *filename, qboolean quiet)
                }
                else
                {
-                       sprintf (netpath, "%s/%s",search->filename, filename);
+                       snprintf (netpath, sizeof (netpath), "%s/%s",search->filename, filename);
 
                        if (!FS_SysFileExists (netpath))
                                continue;
@@ -1603,7 +1603,7 @@ qboolean FS_WriteFile (const char *filename, void *data, int len)
        FILE *handle;
        char name[MAX_OSPATH];
 
-       sprintf (name, "%s/%s", fs_gamedir, filename);
+       snprintf (name, sizeof (name), "%s/%s", fs_gamedir, filename);
 
        // Create directories up to the file
        FS_CreatePath (name);
@@ -1635,16 +1635,21 @@ OTHERS PUBLIC FUNCTIONS
 FS_StripExtension
 ============
 */
-void FS_StripExtension (const char *in, char *out)
+void FS_StripExtension (const char *in, char *out, size_t size_out)
 {
        char *last = NULL;
-       while (*in)
+
+       if (size_out == 0)
+               return;
+
+       while (*in && size_out > 1)
        {
                if (*in == '.')
                        last = out;
                else if (*in == '/' || *in == '\\' || *in == ':')
                        last = NULL;
                *out++ = *in++;
+               size_out--;
        }
        if (last)
                *last = 0;
@@ -1695,7 +1700,7 @@ qboolean FS_FileExists (const char *filename)
                }
                else
                {
-                       sprintf (netpath, "%s/%s",search->filename, filename);
+                       snprintf (netpath, sizeof (netpath), "%s/%s",search->filename, filename);
                        if (FS_SysFileExists (netpath))
                                return true;
                }