summaryrefslogtreecommitdiffstats
path: root/src/fiasco.c
diff options
context:
space:
mode:
authorPali Rohár <pali.rohar@gmail.com>2012-09-22 20:37:30 +0200
committerPali Rohár <pali.rohar@gmail.com>2012-09-22 20:37:30 +0200
commit28ca666c6e094a65802c74c98e1c8c38842b22a2 (patch)
tree49a05532bd878ce2e094a562a2bdb312ab03eea8 /src/fiasco.c
parentf8ad95ee4d5c108c8ef5df51d45dee9c3762a328 (diff)
download0xFFFF-28ca666c6e094a65802c74c98e1c8c38842b22a2.tar.bz2
fiasco: Fix fiasco_write_to_file
Diffstat (limited to 'src/fiasco.c')
-rw-r--r--src/fiasco.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/fiasco.c b/src/fiasco.c
index 1f593ce..0b75a40 100644
--- a/src/fiasco.c
+++ b/src/fiasco.c
@@ -353,7 +353,7 @@ int fiasco_write_to_file(struct fiasco * fiasco, const char * file) {
device_hwrevs_bufs = device_list_alloc_to_bufs(image->devices);
device_count = 0;
- if ( device_hwrevs_bufs )
+ if ( device_hwrevs_bufs && device_hwrevs_bufs[0] )
for ( ; device_hwrevs_bufs[device_count]; ++device_count );
if ( ! type )
@@ -371,7 +371,7 @@ int fiasco_write_to_file(struct fiasco * fiasco, const char * file) {
WRITE_OR_FAIL(file, fd, "T", 1);
/* number of subsections */
- length8 = device_count;
+ length8 = device_count+1;
if ( image->version )
++length8;
if ( image->layout )
@@ -406,12 +406,10 @@ int fiasco_write_to_file(struct fiasco * fiasco, const char * file) {
}
/* append device & hwrevs subsection */
- if ( device_hwrevs_bufs ) {
- for ( i = 0; i < device_count; ++i ) {
- WRITE_OR_FAIL(file, fd, "2", 1); /* 2 - device & hwrevs */
- WRITE_OR_FAIL(file, fd, &device_hwrevs_bufs[i][0], 1);
- WRITE_OR_FAIL(file, fd, device_hwrevs_bufs[i]+1, device_hwrevs_bufs[i][0]);
- }
+ for ( i = 0; i < device_count; ++i ) {
+ WRITE_OR_FAIL(file, fd, "2", 1); /* 2 - device & hwrevs */
+ WRITE_OR_FAIL(file, fd, &device_hwrevs_bufs[i][0], 1);
+ WRITE_OR_FAIL(file, fd, device_hwrevs_bufs[i]+1, device_hwrevs_bufs[i][0]);
}
free(device_hwrevs_bufs);