ifdtool: Check if file was opened

Check if the new file could in fact be opened before
writing to it.

Change-Id: I6b2d31bf5c18f657fca4dc14fee2f2d5a2e33080
Found-by: Coverity Scan
Signed-off-by: Patrick Georgi <patrick@georgi-clan.de>
Reviewed-on: http://review.coreboot.org/6477
Tested-by: build bot (Jenkins)
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
Patrick Georgi 2014-08-03 12:18:45 +02:00
parent 440daf786a
commit 38fa6edf2d
1 changed files with 8 additions and 0 deletions

View File

@ -540,6 +540,10 @@ static void write_regions(char *image, int size)
region_fd = open(region_filename(i), region_fd = open(region_filename(i),
O_WRONLY | O_CREAT | O_TRUNC, O_WRONLY | O_CREAT | O_TRUNC,
S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
if (region_fd < 0) {
perror("Error while trying to open file");
exit(EXIT_FAILURE);
}
if (write(region_fd, image + region.base, region.size) != region.size) if (write(region_fd, image + region.base, region.size) != region.size)
perror("Error while writing"); perror("Error while writing");
close(region_fd); close(region_fd);
@ -562,6 +566,10 @@ static void write_image(char *filename, char *image, int size)
new_fd = open(new_filename, new_fd = open(new_filename,
O_WRONLY | O_CREAT | O_TRUNC, O_WRONLY | O_CREAT | O_TRUNC,
S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
if (new_fd < 0) {
perror("Error while trying to open file");
exit(EXIT_FAILURE);
}
if (write(new_fd, image, size) != size) if (write(new_fd, image, size) != size)
perror("Error while writing"); perror("Error while writing");
close(new_fd); close(new_fd);