diff options
| -rw-r--r-- | ChangeLog | 2 | ||||
| -rw-r--r-- | src/nad2bin.c | 22 |
2 files changed, 19 insertions, 5 deletions
@@ -1,5 +1,7 @@ 2012-02-20 Frank Warmerdam <warmerdam@pobox.com> + * src/nad2bin.c: improve io error checking (#140). + * src/PJ_healpix.c: fix windows build issues (#133) 2012-02-15 Frank Warmerdam <warmerdam@pobox.com> diff --git a/src/nad2bin.c b/src/nad2bin.c index 2c8fc28e..6de54f9c 100644 --- a/src/nad2bin.c +++ b/src/nad2bin.c @@ -98,9 +98,15 @@ int main(int argc, char **argv) { /* Read the ASCII Table */ /* ==================================================================== */ - fgets(ct.id, MAX_TAB_ID, stdin); - scanf("%d %d %*d %lf %lf %lf %lf", &ct.lim.lam, &ct.lim.phi, - &ct.ll.lam, &ct.del.lam, &ct.ll.phi, &ct.del.phi); + if ( NULL == fgets(ct.id, MAX_TAB_ID, stdin) ) { + perror("fgets"); + exit(1); + } + if ( EOF == scanf("%d %d %*d %lf %lf %lf %lf", &ct.lim.lam, &ct.lim.phi, + &ct.ll.lam, &ct.del.lam, &ct.ll.phi, &ct.del.phi) ) { + perror("scanf"); + exit(1); + } if (!(ct.cvs = (FLP *)malloc(tsize = ct.lim.lam * ct.lim.phi * sizeof(FLP)))) { perror("mem. alloc"); @@ -112,7 +118,10 @@ int main(int argc, char **argv) { ct.del.phi *= DEG_TO_RAD; /* load table */ for (p = ct.cvs, i = 0; i < ct.lim.phi; ++i) { - scanf("%d:%ld %ld", &ichk, &laml, &phil); + if ( EOF == scanf("%d:%ld %ld", &ichk, &laml, &phil) ) { + perror("scanf on row"); + exit(1); + } if (ichk != i) { fprintf(stderr,"format check on row\n"); exit(1); @@ -121,7 +130,10 @@ int main(int argc, char **argv) { t.phi = phil * U_SEC_TO_RAD; *p++ = t; for (j = 1; j < ct.lim.lam; ++j) { - scanf("%ld %ld", &lam, &phi); + if ( EOF == scanf("%ld %ld", &lam, &phi) ) { + perror("scanf on column"); + exit(1); + } t.lam = (laml += lam) * U_SEC_TO_RAD; t.phi = (phil += phi) * U_SEC_TO_RAD; *p++ = t; |
