]> sourceware.org Git - lvm2.git/commitdiff
thin: always clear memory before parsing status
authorZdenek Kabelac <zkabelac@redhat.com>
Wed, 6 Dec 2017 12:24:41 +0000 (13:24 +0100)
committerZdenek Kabelac <zkabelac@redhat.com>
Thu, 7 Dec 2017 19:59:28 +0000 (20:59 +0100)
Ensure there cannot be 'reused' any data from some previous call.

WHATS_NEW
libdm/libdm-deptree.c
libdm/libdm-targets.c

index a5ec3e743c9830c9d61b678d60a9bf1ef92b94da..4659d555033af8d8483554732f4f4a691ef14ed6 100644 (file)
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
 Version 2.02.177 -
 ====================================
+  Ensure _node_send_message always uses clean status of thin pool.
   Fix lvmlockd to use pool lock when accessing _tmeta volume.
   Report expected sanlock_convert errors only when retries fail.
   Avoid blocking in sanlock_convert on SH to EX lock conversion.
index 34a15474a8e4523d6575598517420681a380a87c..b844a57354ec75985e3ecfbca9285927aaa51a73 100644 (file)
@@ -1493,7 +1493,7 @@ static int _node_send_messages(struct dm_tree_node *dnode,
 {
        struct load_segment *seg;
        struct thin_message *tmsg;
-       struct dm_status_thin_pool stp = { 0 };
+       struct dm_status_thin_pool stp;
        const char *uuid;
        int have_messages;
 
index 6577f0744123c899c44b2e3f812fa1382414ec80..990d275b648809f401d5b86fa75d23b853347166 100644 (file)
@@ -350,6 +350,8 @@ int parse_thin_pool_status(const char *params, struct dm_status_thin_pool *s)
 {
        int pos;
 
+       memset(s, 0, sizeof(*s));
+
        if (!params) {
                log_error("Failed to parse invalid thin params.");
                return 0;
@@ -406,7 +408,7 @@ int dm_get_status_thin_pool(struct dm_pool *mem, const char *params,
 {
        struct dm_status_thin_pool *s;
 
-       if (!(s = dm_pool_zalloc(mem, sizeof(struct dm_status_thin_pool)))) {
+       if (!(s = dm_pool_alloc(mem, sizeof(struct dm_status_thin_pool)))) {
                log_error("Failed to allocate thin_pool status structure.");
                return 0;
        }
This page took 0.046035 seconds and 5 git commands to generate.