{
uint32_t md5[4];
- if (md5sum(file, md5)) {
+ if (md5sum(file, md5) <= 0) {
ULOG_ERR("failed to generate md5 sum\n");
return -1;
}
int in = 0, len, offset;
int ret = -1;
- if (stat(file, &s) || md5sum(file, md5)) {
+ if (stat(file, &s) || md5sum(file, md5) != s.st_size) {
ULOG_ERR("stat failed on %s\n", file);
goto out;
}
snapshot_sync(v);
setenv("SNAPSHOT", "magic", 1);
_ramoverlay("/rom", "/overlay");
- system("/sbin/snapshot unpack");
+ if (system("/sbin/snapshot unpack") == -1) {
+ perror("system");
+ return -1;
+ }
foreachdir("/overlay/", handle_whiteout);
mkdir("/volatile", 0700);
_ramoverlay("/rom", "/volatile");
mount_move("/rom/volatile", "/volatile", "");
mount_move("/rom/rom", "/rom", "");
- system("/sbin/snapshot config_unpack");
+ if (system("/sbin/snapshot config_unpack")) {
+ perror("system");
+ return -1;
+ }
foreachdir("/volatile/", handle_whiteout);
unsetenv("SNAPSHOT");
return -1;