diff options
author | Pali Rohár <pali.rohar@gmail.com> | 2012-09-22 20:37:30 +0200 |
---|---|---|
committer | Pali Rohár <pali.rohar@gmail.com> | 2012-09-22 20:37:30 +0200 |
commit | 28ca666c6e094a65802c74c98e1c8c38842b22a2 (patch) | |
tree | 49a05532bd878ce2e094a562a2bdb312ab03eea8 /src/fiasco.c | |
parent | f8ad95ee4d5c108c8ef5df51d45dee9c3762a328 (diff) | |
download | 0xFFFF-28ca666c6e094a65802c74c98e1c8c38842b22a2.tar.bz2 |
fiasco: Fix fiasco_write_to_file
Diffstat (limited to 'src/fiasco.c')
-rw-r--r-- | src/fiasco.c | 14 |
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); |