summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsr2013-01-06 19:42:09 +0100
committersr2013-01-06 19:42:09 +0100
commitcdd587d674974a753dae862ba716b68a6b56dfa5 (patch)
tree5e9a2c0f5dc9c5ce2e742269498bdd14a2ebfca3
parent< != > (diff)
downloaddnbd3-cdd587d674974a753dae862ba716b68a6b56dfa5.tar.gz
dnbd3-cdd587d674974a753dae862ba716b68a6b56dfa5.tar.xz
dnbd3-cdd587d674974a753dae862ba716b68a6b56dfa5.zip
[SERVER] Fix nullpointer deref when last image is deleted
-rw-r--r--src/server/job.c3
-rw-r--r--src/server/saveload.c2
2 files changed, 4 insertions, 1 deletions
diff --git a/src/server/job.c b/src/server/job.c
index 4d55080..6281b3a 100644
--- a/src/server/job.c
+++ b/src/server/job.c
@@ -313,7 +313,8 @@ static void connect_proxy_images()
if (isworking && !(alloc_cache && image->cache_file))
{
image->working = TRUE;
- memlogf("[WARNING] Proxy-Mode enabled without cache directory. This will most likely hurt performance.");
+ if (!image->cache_file)
+ memlogf("[WARNING] Proxy-Mode enabled without cache directory. This will most likely hurt performance.");
goto continue_with_next_image;
}
snprintf(cfname, 1000, "%s", image->cache_file);
diff --git a/src/server/saveload.c b/src/server/saveload.c
index a9934d4..8c48304 100644
--- a/src/server/saveload.c
+++ b/src/server/saveload.c
@@ -556,6 +556,8 @@ void dnbd3_exec_delete(int save_if_changed)
g_free(image);
// Restart iteration as it would be messed up now
image_iterator = _dnbd3_images;
+ if (image_iterator == NULL)
+ break;
}
} // END image iteration
pthread_spin_unlock(&_spinlock);