aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ubi-utils/new-utils/src/ubiformat.c10
-rw-r--r--ubi-utils/src/libpfiflash.c38
-rw-r--r--ubi-utils/src/unubi.c2
3 files changed, 28 insertions, 22 deletions
diff --git a/ubi-utils/new-utils/src/ubiformat.c b/ubi-utils/new-utils/src/ubiformat.c
index 05caed9..fb4f2ee 100644
--- a/ubi-utils/new-utils/src/ubiformat.c
+++ b/ubi-utils/new-utils/src/ubiformat.c
@@ -225,7 +225,10 @@ static int want_exit(void)
while (1) {
normsg_cont("continue? (yes/no) ");
- scanf("%3s", buf);
+ if (scanf("%3s", buf) == EOF) {
+ sys_errmsg("scanf returned unexpected EOF, assume \"yes\"");
+ return 1;
+ }
if (!strncmp(buf, "yes", 3) || !strncmp(buf, "y", 1))
return 0;
if (!strncmp(buf, "no", 2) || !strncmp(buf, "n", 1))
@@ -238,7 +241,10 @@ static int answer_is_yes(void)
char buf[4];
while (1) {
- scanf("%3s", buf);
+ if (scanf("%3s", buf) == EOF) {
+ sys_errmsg("scanf returned unexpected EOF, assume \"no\"");
+ return 0;
+ }
if (!strncmp(buf, "yes", 3) || !strncmp(buf, "y", 1))
return 1;
if (!strncmp(buf, "no", 2) || !strncmp(buf, "n", 1))
diff --git a/ubi-utils/src/libpfiflash.c b/ubi-utils/src/libpfiflash.c
index 7e3d3b3..cf18ad3 100644
--- a/ubi-utils/src/libpfiflash.c
+++ b/ubi-utils/src/libpfiflash.c
@@ -136,7 +136,7 @@ skip_raw_volumes(FILE* pfi, list_t pfi_raws,
}
err:
- EBUF(PFIFLASH_ERRSTR[-rc]);
+ EBUF("%s", PFIFLASH_ERRSTR[-rc]);
return rc;
}
@@ -173,7 +173,7 @@ my_ubi_mkvol(int devno, int s, pfi_ubi_t u,
ulib = libubi_open();
if (ulib == NULL) {
rc = -PFIFLASH_ERR_UBI_OPEN;
- EBUF(PFIFLASH_ERRSTR[-rc]);
+ EBUF("%s", PFIFLASH_ERRSTR[-rc]);
goto err;
}
@@ -239,7 +239,7 @@ my_ubi_rmvol(int devno, uint32_t id,
ulib = libubi_open();
if (ulib == NULL) {
rc = -PFIFLASH_ERR_UBI_OPEN;
- EBUF(PFIFLASH_ERRSTR[-rc]);
+ EBUF("%s", PFIFLASH_ERRSTR[-rc]);
goto err;
}
@@ -323,7 +323,7 @@ read_bootenv_volume(int devno, uint32_t id, bootenv_t bootenv_old,
ulib = libubi_open();
if (ulib == NULL) {
rc = -PFIFLASH_ERR_UBI_OPEN;
- EBUF(PFIFLASH_ERRSTR[-rc]);
+ EBUF("%s", PFIFLASH_ERRSTR[-rc]);
goto err;
}
@@ -342,7 +342,7 @@ read_bootenv_volume(int devno, uint32_t id, bootenv_t bootenv_old,
rc = bootenv_read(fp_in, bootenv_old, BOOTENV_MAXSIZE);
if (rc != 0) {
rc = -PFIFLASH_ERR_BOOTENV_READ;
- EBUF(PFIFLASH_ERRSTR[-rc]);
+ EBUF("%s", PFIFLASH_ERRSTR[-rc]);
goto err;
}
@@ -421,7 +421,7 @@ write_bootenv_volume(int devno, uint32_t id, bootenv_t bootenv_old,
ulib = libubi_open();
if (ulib == NULL) {
rc = -PFIFLASH_ERR_UBI_OPEN;
- EBUF(PFIFLASH_ERRSTR[-rc]);
+ EBUF("%s", PFIFLASH_ERRSTR[-rc]);
goto err;
}
@@ -442,7 +442,7 @@ write_bootenv_volume(int devno, uint32_t id, bootenv_t bootenv_old,
rc = bootenv_read_crc(fp_in, bootenv_new, fp_in_size, &crc);
if (rc != 0) {
rc = -PFIFLASH_ERR_BOOTENV_READ;
- EBUF(PFIFLASH_ERRSTR[-rc]);
+ EBUF("%s", PFIFLASH_ERRSTR[-rc]);
goto err;
} else if (crc != pfi_crc) {
rc = -PFIFLASH_ERR_CRC_CHECK;
@@ -464,7 +464,7 @@ write_bootenv_volume(int devno, uint32_t id, bootenv_t bootenv_old,
rc = bootenv_size(bootenv_res, &update_size);
if (rc != 0) {
rc = -PFIFLASH_ERR_BOOTENV_SIZE;
- EBUF(PFIFLASH_ERRSTR[-rc]);
+ EBUF("%s", PFIFLASH_ERRSTR[-rc]);
goto err;
}
@@ -554,7 +554,7 @@ write_normal_volume(int devno, uint32_t id, size_t update_size, FILE* fp_in,
ulib = libubi_open();
if (ulib == NULL) {
rc = -PFIFLASH_ERR_UBI_OPEN;
- EBUF(PFIFLASH_ERRSTR[-rc]);
+ EBUF("%s", PFIFLASH_ERRSTR[-rc]);
goto err;
}
@@ -586,13 +586,13 @@ write_normal_volume(int devno, uint32_t id, size_t update_size, FILE* fp_in,
bytes_left : sizeof buf;
if (fread(buf, 1, to_rw, fp_in) != to_rw) {
rc = -PFIFLASH_ERR_EOF;
- EBUF(PFIFLASH_ERRSTR[-rc]);
+ EBUF("%s", PFIFLASH_ERRSTR[-rc]);
goto err;
}
crc = clc_crc32(crc32_table, crc, buf, to_rw);
if (fwrite(buf, 1, to_rw, fp_out) != to_rw) {
rc = -PFIFLASH_ERR_FIO;
- EBUF(PFIFLASH_ERRSTR[-rc]);
+ EBUF("%s", PFIFLASH_ERRSTR[-rc]);
goto err;
}
bytes_left -= to_rw;
@@ -770,7 +770,7 @@ static int compare_volumes(int devno, pfi_ubi_t u, FILE *fp_pfi,
err:
if (rc < 0)
- EBUF(PFIFLASH_ERRSTR[-rc]);
+ EBUF("%s", PFIFLASH_ERRSTR[-rc]);
for (i = 0; i < u->ids_size; i++)
fclose(fp_flash[i]);
@@ -877,11 +877,11 @@ process_raw_volumes(FILE* pfi, list_t pfi_raws, const char* rawdev,
int c = fgetc(pfi);
if (c == EOF) {
rc = -PFIFLASH_ERR_EOF;
- EBUF(PFIFLASH_ERRSTR[-rc]);
+ EBUF("%s", PFIFLASH_ERRSTR[-rc]);
goto err;
} else if (ferror(pfi)) {
rc = -PFIFLASH_ERR_FIO;
- EBUF(PFIFLASH_ERRSTR[-rc]);
+ EBUF("%s", PFIFLASH_ERRSTR[-rc]);
goto err;
}
pfi_data[j] = (char)c;
@@ -906,7 +906,7 @@ process_raw_volumes(FILE* pfi, list_t pfi_raws, const char* rawdev,
for (j = 0; j < r->starts_size; j++) {
rc = erase_mtd_region(mtd, r->starts[j], r->data_size);
if (rc) {
- EBUF(PFIFLASH_ERRSTR[-rc]);
+ EBUF("%s", PFIFLASH_ERRSTR[-rc]);
goto err;
}
@@ -916,7 +916,7 @@ process_raw_volumes(FILE* pfi, list_t pfi_raws, const char* rawdev,
if (c == EOF) {
fclose(mtd);
rc = -PFIFLASH_ERR_EOF;
- EBUF(PFIFLASH_ERRSTR[-rc]);
+ EBUF("%s", PFIFLASH_ERRSTR[-rc]);
goto err;
}
if ((char)c != pfi_data[k]) {
@@ -1100,7 +1100,7 @@ process_ubi_volumes(FILE* pfi, int seqnum, list_t pfi_ubis,
break;
default:
rc = -PFIFLASH_ERR_UBI_UNKNOWN;
- EBUF(PFIFLASH_ERRSTR[-rc]);
+ EBUF("%s", PFIFLASH_ERRSTR[-rc]);
goto err;
}
}
@@ -1137,7 +1137,7 @@ mirror_ubi_volumes(uint32_t devno, list_t pfi_ubis,
ulib = libubi_open();
if (ulib == NULL) {
rc = -PFIFLASH_ERR_UBI_OPEN;
- EBUF(PFIFLASH_ERRSTR[-rc]);
+ EBUF("%s", PFIFLASH_ERRSTR[-rc]);
goto err;
}
@@ -1259,7 +1259,7 @@ pfiflash_with_options(FILE* pfi, int complete, int seqnum, int compare,
pdd_f = pdd_funcs[pdd_handling];
else {
rc = -PFIFLASH_ERR_PDD_UNKNOWN;
- EBUF(PFIFLASH_ERRSTR[-rc]);
+ EBUF("%s", PFIFLASH_ERRSTR[-rc]);
goto err;
}
diff --git a/ubi-utils/src/unubi.c b/ubi-utils/src/unubi.c
index ebd527c..7d65cfc 100644
--- a/ubi-utils/src/unubi.c
+++ b/ubi-utils/src/unubi.c
@@ -895,7 +895,7 @@ unubi_volumes(FILE* fpin, uint32_t *vols, size_t vc, struct args *a)
free(cur);
if (a->analyze) {
- char fname[PATH_MAX];
+ char fname[PATH_MAX + 1];
FILE *fp;
unubi_analyze(&head, first, a->odir_path);