diff options
| author | Frank Warmerdam <warmerdam@pobox.com> | 2012-02-21 01:44:05 +0000 |
|---|---|---|
| committer | Frank Warmerdam <warmerdam@pobox.com> | 2012-02-21 01:44:05 +0000 |
| commit | 5dfb1d5301a0edf5ee142352a49eb37f9b5d1a88 (patch) | |
| tree | 3b8fe60ea61315998feea0091bd62382faffd854 /src | |
| parent | 850f843975d0bfef7a4e0ad59ef7681f88263e9c (diff) | |
| download | PROJ-5dfb1d5301a0edf5ee142352a49eb37f9b5d1a88.tar.gz PROJ-5dfb1d5301a0edf5ee142352a49eb37f9b5d1a88.zip | |
improve error checking (#140)
git-svn-id: http://svn.osgeo.org/metacrs/proj/trunk@2162 4e78687f-474d-0410-85f9-8d5e500ac6b2
Diffstat (limited to 'src')
| -rw-r--r-- | src/nad2bin.c | 22 |
1 files changed, 17 insertions, 5 deletions
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; |
