mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-05 16:10:55 +00:00
Fix an uninitialized variable bug that caused write_pmbr() to bogusly
return an error value that made Write_Disk() abort. While on the subject, improve the initialization of the error variable in read_gpt() and update_gpt() even though nothing was broken there.
This commit is contained in:
parent
18d948adb1
commit
94635227fd
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=125124
|
@ -121,6 +121,7 @@ write_pmbr(int fd, const struct disk *disk)
|
|||
u_long nsects;
|
||||
int error;
|
||||
|
||||
error = 0;
|
||||
nsects = disk->media_size / disk->sector_size;
|
||||
buffer = calloc(disk->sector_size, 1);
|
||||
if (buffer == NULL)
|
||||
|
@ -153,6 +154,7 @@ read_gpt(int fd, const struct disk *disk, struct gpt_hdr *hdr,
|
|||
size_t nsects, sz;
|
||||
int error, i;
|
||||
|
||||
error = 0;
|
||||
nsects = disk->gpt_size * sizeof(struct gpt_ent) / disk->sector_size;
|
||||
nsects++;
|
||||
sz = nsects * disk->sector_size;
|
||||
|
@ -191,7 +193,6 @@ read_gpt(int fd, const struct disk *disk, struct gpt_hdr *hdr,
|
|||
uuid_create(&tbl[i].ent_uuid, NULL);
|
||||
}
|
||||
|
||||
error = 0;
|
||||
goto bail;
|
||||
}
|
||||
|
||||
|
@ -213,7 +214,6 @@ read_gpt(int fd, const struct disk *disk, struct gpt_hdr *hdr,
|
|||
goto bail;
|
||||
}
|
||||
memcpy(&hdr[1], buffer, sizeof(struct gpt_hdr));
|
||||
error = 0;
|
||||
|
||||
bail:
|
||||
free(buffer);
|
||||
|
@ -231,6 +231,8 @@ update_gpt(int fd, const struct disk *disk, struct gpt_hdr *hdr,
|
|||
size_t bufsz;
|
||||
int error, idx, sav;
|
||||
|
||||
error = 0;
|
||||
|
||||
/*
|
||||
* Save the entries of those chunks that have an index. They are
|
||||
* the ones that exist on disk already.
|
||||
|
@ -358,7 +360,6 @@ update_gpt(int fd, const struct disk *disk, struct gpt_hdr *hdr,
|
|||
error = (errno) ? errno : EAGAIN;
|
||||
goto bail;
|
||||
}
|
||||
error = 0;
|
||||
|
||||
bail:
|
||||
free(buffer);
|
||||
|
|
Loading…
Reference in a new issue