diff options
author | Bastien Montagne <bastien@blender.org> | 2020-11-16 13:16:03 +0300 |
---|---|---|
committer | Bastien Montagne <bastien@blender.org> | 2020-11-16 16:39:31 +0300 |
commit | 97d52daf960f914e771c9732d13ee122fc6d13e7 (patch) | |
tree | 698e87d86fe5b7c3f0e6fa98fdecf376ad2b13fd /source/blender/blenkernel/intern | |
parent | f39fbb3e604611b63c69661dd22ca987fb1d8791 (diff) |
Fix (unreported) potential buffer overflow in PointCache code.
Diffstat (limited to 'source/blender/blenkernel/intern')
-rw-r--r-- | source/blender/blenkernel/intern/pointcache.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c index 5c60b39e9c8..4784df6e4c3 100644 --- a/source/blender/blenkernel/intern/pointcache.c +++ b/source/blender/blenkernel/intern/pointcache.c @@ -1387,7 +1387,7 @@ static int ptcache_filename(PTCacheID *pid, char *filename, int cfra, short do_p idname = (pid->owner_id->name + 2); /* convert chars to hex so they are always a valid filename */ while ('\0' != *idname) { - BLI_snprintf(newname, MAX_PTCACHE_FILE, "%02X", (unsigned int)(*idname++)); + BLI_snprintf(newname, MAX_PTCACHE_FILE - len, "%02X", (unsigned int)(*idname++)); newname += 2; len += 2; } @@ -1410,16 +1410,16 @@ static int ptcache_filename(PTCacheID *pid, char *filename, int cfra, short do_p if (pid->cache->flag & PTCACHE_EXTERNAL) { if (pid->cache->index >= 0) { /* Always 6 chars. */ - BLI_snprintf(newname, MAX_PTCACHE_FILE, "_%06d_%02u%s", cfra, pid->stack_index, ext); + BLI_snprintf(newname, MAX_PTCACHE_FILE - len, "_%06d_%02u%s", cfra, pid->stack_index, ext); } else { /* Always 6 chars. */ - BLI_snprintf(newname, MAX_PTCACHE_FILE, "_%06d%s", cfra, ext); + BLI_snprintf(newname, MAX_PTCACHE_FILE - len, "_%06d%s", cfra, ext); } } else { /* Always 6 chars. */ - BLI_snprintf(newname, MAX_PTCACHE_FILE, "_%06d_%02u%s", cfra, pid->stack_index, ext); + BLI_snprintf(newname, MAX_PTCACHE_FILE - len, "_%06d_%02u%s", cfra, pid->stack_index, ext); } len += 16; } @@ -1434,7 +1434,7 @@ static PTCacheFile *ptcache_file_open(PTCacheID *pid, int mode, int cfra) { PTCacheFile *pf; FILE *fp = NULL; - char filename[FILE_MAX * 2]; + char filename[MAX_PTCACHE_FILE]; #ifndef DURIAN_POINTCACHE_LIB_OK /* don't allow writing for linked objects */ |