mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-30 17:23:35 +00:00
MFC r292048:
Don't leak rsector/sector in mp_label(..) Use calloc instead of malloc + memset(.., 0, ..) when allocating sector Differential Revision: https://reviews.freebsd.org/D4450 Reported by: cppcheck Reviewed by: mav Sponsored by: EMC / Isilon Storage Division
This commit is contained in:
parent
c05cd4c0c4
commit
75bbe28538
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/stable/10/; revision=292395
@ -221,17 +221,15 @@ mp_label(struct gctl_req *req)
|
||||
/*
|
||||
* Allocate a sector to write as metadata.
|
||||
*/
|
||||
sector = malloc(secsize);
|
||||
sector = calloc(1, secsize);
|
||||
if (sector == NULL) {
|
||||
gctl_error(req, "unable to allocate metadata buffer");
|
||||
return;
|
||||
}
|
||||
memset(sector, 0, secsize);
|
||||
rsector = malloc(secsize);
|
||||
if (rsector == NULL) {
|
||||
free(sector);
|
||||
gctl_error(req, "unable to allocate metadata buffer");
|
||||
return;
|
||||
goto done;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -246,7 +244,7 @@ mp_label(struct gctl_req *req)
|
||||
error = g_metadata_store(name, sector, secsize);
|
||||
if (error != 0) {
|
||||
gctl_error(req, "cannot store metadata on %s: %s.", name, strerror(error));
|
||||
return;
|
||||
goto done;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -274,6 +272,9 @@ mp_label(struct gctl_req *req)
|
||||
name2, name);
|
||||
}
|
||||
}
|
||||
done:
|
||||
free(rsector);
|
||||
free(sector);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user