{
uint32_t magic;
int ret = 1;
+ int bufread;
+
+ while (buflen < sizeof(magic)) {
+ bufread = read(imagefd, buf + buflen, sizeof(magic) - buflen);
+ if (bufread < 1)
+ break;
+
+ buflen += bufread;
+ }
if (buflen < sizeof(magic)) {
- buflen += read(imagefd, buf + buflen, sizeof(magic) - buflen);
- if (buflen < sizeof(magic)) {
- fprintf(stdout, "Could not get image magic\n");
- return 0;
- }
+ fprintf(stdout, "Could not get image magic\n");
+ return 0;
}
+
magic = ((uint32_t *)buf)[0];
if (be32_to_cpu(magic) == TRX_MAGIC)
mtd_write_jffs2(device, imagefile, jffs2dir);
break;
case CMD_FIXTRX:
- if (mtd_fixtrx) {
- mtd_fixtrx(device, offset);
- }
+ if (mtd_fixtrx) {
+ mtd_fixtrx(device, offset);
+ }
case CMD_RESETBC:
- if (mtd_resetbc) {
- mtd_resetbc(device);
- }
+ if (mtd_resetbc) {
+ mtd_resetbc(device);
+ }
case CMD_FIXSEAMA:
if (mtd_fixseama)
- mtd_fixseama(device, 0);
+ mtd_fixseama(device, 0);
break;
}