From ed3c928da64e08f15f3753b1680f6dfed2959c54 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Mon, 19 Mar 2018 17:23:15 +0100 Subject: [SERVER] Delete image files after releasing image to get rid of stale .map files --- src/server/image.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'src/server') diff --git a/src/server/image.c b/src/server/image.c index ec0ab7b..13627d8 100644 --- a/src/server/image.c +++ b/src/server/image.c @@ -1761,17 +1761,19 @@ static bool image_ensureDiskSpace(uint64_t size, bool force) oldest = image_lock( oldest ); if ( oldest == NULL ) continue; // Image freed in the meantime? Try again logadd( LOG_INFO, "'%s:%d' has to go!", oldest->name, (int)oldest->rid ); - unlink( oldest->path ); - size_t len = strlen( oldest->path ) + 5 + 1; + char *filename = strdup( oldest->path ); + oldest = image_remove( oldest ); + oldest = image_release( oldest ); + unlink( filename ); + size_t len = strlen( filename ) + 10; char buffer[len]; - snprintf( buffer, len, "%s.map", oldest->path ); + snprintf( buffer, len, "%s.map", filename ); unlink( buffer ); - snprintf( buffer, len, "%s.crc", oldest->path ); + snprintf( buffer, len, "%s.crc", filename ); unlink( buffer ); - snprintf( buffer, len, "%s.meta", oldest->path ); + snprintf( buffer, len, "%s.meta", filename ); unlink( buffer ); - oldest = image_remove( oldest ); - oldest = image_release( oldest ); + free( filename ); } return false; } -- cgit v1.2.3-55-g7522