diff options
author | Dan Williams <dan.j.williams@intel.com> | 2009-04-12 00:58:27 -0700 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2009-04-12 00:58:27 -0700 |
commit | 1f45a8ad2083d6b9de6e37ae46e8ac957694d0f8 (patch) | |
tree | 5300cfc969b0f7ecb6fe24392c8057b7416d02c5 | |
parent | 9d84c8eac256345126f10628e4f13c07f7eece17 (diff) | |
download | mdadm-1f45a8ad2083d6b9de6e37ae46e8ac957694d0f8.tar.gz mdadm-1f45a8ad2083d6b9de6e37ae46e8ac957694d0f8.tar.xz mdadm-1f45a8ad2083d6b9de6e37ae46e8ac957694d0f8.zip |
imsm: ensure mpb buffer is zeroed
Don't leak unitialized data into the mpb.
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
-rw-r--r-- | super-intel.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/super-intel.c b/super-intel.c index 328a335..4754b25 100644 --- a/super-intel.c +++ b/super-intel.c @@ -1746,7 +1746,8 @@ static int parse_raid_devices(struct intel_super *super) if (posix_memalign(&buf, 512, len) != 0) return 1; - memcpy(buf, super->buf, len); + memcpy(buf, super->buf, super->len); + memset(buf + super->len, 0, len - super->len); free(super->buf); super->buf = buf; super->len = len; @@ -4382,7 +4383,9 @@ static void imsm_prepare_update(struct supertype *st, free(super->next_buf); super->next_len = buf_len; - if (posix_memalign(&super->next_buf, 512, buf_len) != 0) + if (posix_memalign(&super->next_buf, 512, buf_len) == 0) + memset(super->next_buf, 0, buf_len); + else super->next_buf = NULL; } } |