summaryrefslogtreecommitdiffstats
path: root/src/server/image.c
diff options
context:
space:
mode:
authorSimon Rettberg2020-03-20 12:08:10 +0100
committerSimon Rettberg2020-03-20 12:08:10 +0100
commita9f5b836d9fddb3e1851c5b0a77c566b0f267ead (patch)
tree559a867b661e477553ce26884a74b00f572d26d3 /src/server/image.c
parent[SHARED] crc32: Don't skip table lookup if PCLMUL is unavailable (diff)
downloaddnbd3-a9f5b836d9fddb3e1851c5b0a77c566b0f267ead.tar.gz
dnbd3-a9f5b836d9fddb3e1851c5b0a77c566b0f267ead.tar.xz
dnbd3-a9f5b836d9fddb3e1851c5b0a77c566b0f267ead.zip
[SERVER] Fix warnings, add assertions
Diffstat (limited to 'src/server/image.c')
-rw-r--r--src/server/image.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/server/image.c b/src/server/image.c
index 0ec1d58..ef40325 100644
--- a/src/server/image.c
+++ b/src/server/image.c
@@ -440,6 +440,7 @@ dnbd3_image_t* image_lock(dnbd3_image_t *image)
mutex_lock( &imageListLock );
for (i = 0; i < _num_images; ++i) {
if ( _images[i] == image ) {
+ assert( _images[i]->id == image->id );
image->users++;
mutex_unlock( &imageListLock );
return image;
@@ -470,6 +471,7 @@ dnbd3_image_t* image_release(dnbd3_image_t *image)
// responsible for freeing it
for (int i = 0; i < _num_images; ++i) {
if ( _images[i] == image ) { // Found, do nothing
+ assert( _images[i]->id == image->id );
mutex_unlock( &imageListLock );
return NULL;
}
@@ -509,6 +511,7 @@ static dnbd3_image_t* image_remove(dnbd3_image_t *image)
mutex_lock( &imageListLock );
for ( int i = _num_images - 1; i >= 0; --i ) {
if ( _images[i] == image ) {
+ assert( _images[i]->id == image->id );
_images[i] = NULL;
mustFree = ( image->users == 0 );
}
@@ -1088,7 +1091,7 @@ bool image_create(char *image, int revision, uint64_t size)
logadd( LOG_ERROR, "revision id invalid: %d", revision );
return false;
}
- char path[PATHLEN], cache[PATHLEN];
+ char path[PATHLEN], cache[PATHLEN+4];
char *lastSlash = strrchr( image, '/' );
if ( lastSlash == NULL ) {
snprintf( path, PATHLEN, "%s/%s.r%d", _basePath, image, revision );
@@ -1099,7 +1102,7 @@ bool image_create(char *image, int revision, uint64_t size)
*lastSlash = '/';
snprintf( path, PATHLEN, "%s/%s.r%d", _basePath, image, revision );
}
- snprintf( cache, PATHLEN, "%s.map", path );
+ snprintf( cache, PATHLEN+4, "%s.map", path );
size = (size + DNBD3_BLOCK_SIZE - 1) & ~(uint64_t)(DNBD3_BLOCK_SIZE - 1);
const int mapsize = IMGSIZE_TO_MAPBYTES(size);
// Write files