summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Fainelli <f.fainelli@gmail.com>2016-12-04 15:13:49 -0800
committerFelix Fietkau <nbd@nbd.name>2016-12-05 18:23:49 +0100
commit84b530a732b12cca1cd5ee9ba163b7ead7a83de3 (patch)
treee4172db5b1f48328c118f3509fb50ad0641c3318
parent94a5b0ad8d53f024f036c3526b48c34ebbd66a2f (diff)
downloadfstools-84b530a732b12cca1cd5ee9ba163b7ead7a83de3.tar.gz
libfstools: Check return values for fread and system
libfstools/rootdisk.c: In function 'rootdisk_volume_identify': libfstools/rootdisk.c:172:7: error: ignoring return value of 'fread', declared with attribute warn_unused_result [-Werror=unused-result] fread(&magic, sizeof(magic), 1, f); ^ libfstools/rootdisk.c:179:7: error: ignoring return value of 'fread', declared with attribute warn_unused_result [-Werror=unused-result] fread(&magic, sizeof(magic), 1, f); ^ libfstools/rootdisk.c: In function 'rootdisk_volume_init': libfstools/rootdisk.c:268:9: error: ignoring return value of 'system', declared with attribute warn_unused_result [-Werror=unused-result] system(str); ^ cc1: all warnings being treated as errors Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
-rw-r--r--libfstools/rootdisk.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/libfstools/rootdisk.c b/libfstools/rootdisk.c
index d4ff201..9a5892e 100644
--- a/libfstools/rootdisk.c
+++ b/libfstools/rootdisk.c
@@ -162,6 +162,7 @@ static int rootdisk_volume_identify(struct volume *v)
struct rootdev_volume *p = container_of(v, struct rootdev_volume, v);
int ret = FS_NONE;
uint32_t magic = 0;
+ size_t n;
FILE *f;
f = fopen(rootdev, "r");
@@ -169,14 +170,18 @@ static int rootdisk_volume_identify(struct volume *v)
return ret;
fseeko(f, p->offset + 0x400, SEEK_SET);
- fread(&magic, sizeof(magic), 1, f);
+ n = fread(&magic, sizeof(magic), 1, f);
+ if (n != 1)
+ return -1;
if (magic == cpu_to_le32(0xF2F52010))
ret = FS_F2FS;
magic = 0;
fseeko(f, p->offset + 0x438, SEEK_SET);
- fread(&magic, sizeof(magic), 1, f);
+ n = fread(&magic, sizeof(magic), 1, f);
+ if (n != 1)
+ return -1;
if ((le32_to_cpu(magic) & 0xffff) == 0xef53)
ret = FS_EXT4;
@@ -251,6 +256,7 @@ static int rootdisk_volume_init(struct volume *v)
{
struct rootdev_volume *p = container_of(v, struct rootdev_volume, v);
char str[128];
+ int ret = 0;
if (!p->loop_name[0] && rootdisk_create_loop(p) != 0)
return -1;
@@ -265,12 +271,12 @@ static int rootdisk_volume_init(struct volume *v)
snprintf(str, sizeof(str), "mkfs.f2fs -l rootfs_data %s", v->blk);
else
snprintf(str, sizeof(str), "mkfs.ext4 -L rootfs_data %s", v->blk);
- system(str);
+ ret = system(str);
break;
default:
break;
}
- return 0;
+ return ret;
}
static struct driver rootdisk_driver = {