From 01f6d08f0a0d3b05c28d6772d63b506171c59371 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 26 Mar 2019 14:09:11 +0100 Subject: projinfo: catch potentially uncaugh exception. Coverity CID 193527 --- src/apps/projinfo.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'src/apps') diff --git a/src/apps/projinfo.cpp b/src/apps/projinfo.cpp index 4c99d7ce..7d4a8399 100644 --- a/src/apps/projinfo.cpp +++ b/src/apps/projinfo.cpp @@ -1132,11 +1132,18 @@ int main(int argc, char **argv) { } } - outputOperations( - dbContext, sourceCRSStr, targetCRSStr, bboxFilter, spatialCriterion, - spatialCriterionExplicitlySpecified, crsExtentUse, - gridAvailabilityUse, allowUseIntermediateCRS, pivots, authority, - usePROJGridAlternatives, showSuperseded, outputOpt, summary); + try { + outputOperations(dbContext, sourceCRSStr, targetCRSStr, bboxFilter, + spatialCriterion, + spatialCriterionExplicitlySpecified, crsExtentUse, + gridAvailabilityUse, allowUseIntermediateCRS, + pivots, authority, usePROJGridAlternatives, + showSuperseded, outputOpt, summary); + } catch (const std::exception &e) { + std::cerr << "outputOperations() failed with: " << e.what() + << std::endl; + std::exit(1); + } } return 0; -- cgit v1.2.3 From 703805a646f827971135af1b4e60087d88fed974 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 26 Mar 2019 14:11:34 +0100 Subject: optargpm.h: fix memory leaks in error code paths. Coverity CID 193537 --- src/apps/optargpm.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/apps') diff --git a/src/apps/optargpm.h b/src/apps/optargpm.h index 035c6f92..e7f4f8e5 100644 --- a/src/apps/optargpm.h +++ b/src/apps/optargpm.h @@ -534,6 +534,7 @@ OPTARGS *opt_parse (int argc, char **argv, const char *flags, const char *keys, *equals = '='; if (opt_is_flag (o, c)) { fprintf (stderr, "Option \"%s\" takes no arguments\n", crepr); + free (o); return nullptr; } o->optarg[c] = equals + 1; @@ -544,6 +545,7 @@ OPTARGS *opt_parse (int argc, char **argv, const char *flags, const char *keys, if (!opt_is_flag (o, c)) { if ((argc==i + 1) || ('+'==argv[i+1][0]) || ('-'==argv[i+1][0])) { fprintf (stderr, "Missing argument for option \"%s\"\n", crepr); + free (o); return nullptr; } o->optarg[c] = argv[i + 1]; @@ -553,6 +555,7 @@ OPTARGS *opt_parse (int argc, char **argv, const char *flags, const char *keys, if (!opt_is_flag (o, c)) { fprintf (stderr, "Expected flag style long option here, but got \"%s\"\n", crepr); + free (o); return nullptr; } @@ -564,6 +567,7 @@ OPTARGS *opt_parse (int argc, char **argv, const char *flags, const char *keys, /* classic short options */ if (nullptr==o->optarg[c]) { fprintf (stderr, "Invalid option \"%s\"\n", crepr); + free (o); return nullptr; } @@ -580,6 +584,7 @@ OPTARGS *opt_parse (int argc, char **argv, const char *flags, const char *keys, if ((argc==i + 1) || ('+'==argv[i+1][0]) || ('-'==argv[i+1][0])) { fprintf (stderr, "Bad or missing arg for option \"%s\"\n", crepr); + free (o); return nullptr; } o->optarg[(int) c] = argv[i + 1]; -- cgit v1.2.3 From 6c22035b270aa46f03e6252cd552be14d170e501 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 26 Mar 2019 14:12:31 +0100 Subject: gie.cpp: silence Coverity CID 193520 --- src/apps/gie.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/apps') diff --git a/src/apps/gie.cpp b/src/apps/gie.cpp index 5407c0ba..a84e77ab 100644 --- a/src/apps/gie.cpp +++ b/src/apps/gie.cpp @@ -249,6 +249,7 @@ int main (int argc, char **argv) { T.ignore = 5555; /* Error code that will not be issued by proj_create() */ T.use_proj4_init_rules = FALSE; + /* coverity[tainted_data] */ o = opt_parse (argc, argv, "hlvq", "o", longflags, longkeys); if (nullptr==o) return 0; -- cgit v1.2.3 From 60b71b6187b6190b9ff626c8b0548789aa5c54d7 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 26 Mar 2019 14:17:31 +0100 Subject: proj/emess: fix null pointer dereference. CID 193533 --- src/apps/emess.cpp | 2 +- src/apps/proj.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src/apps') diff --git a/src/apps/emess.cpp b/src/apps/emess.cpp index 52f88aa3..53018ba8 100644 --- a/src/apps/emess.cpp +++ b/src/apps/emess.cpp @@ -30,7 +30,7 @@ emess(int code, const char *fmt, ...) { va_start(args, fmt); /* prefix program name, if given */ - if (fmt != nullptr) + if (emess_dat.Prog_name != nullptr) (void)fprintf(stderr,"%s\n<%s>: ",pj_get_release(), emess_dat.Prog_name); /* print file name and line, if given */ diff --git a/src/apps/proj.cpp b/src/apps/proj.cpp index 40fc5695..88074280 100644 --- a/src/apps/proj.cpp +++ b/src/apps/proj.cpp @@ -532,7 +532,7 @@ int main(int argc, char **argv) { } else { if ((fid = fopen(*eargv, "rb")) == nullptr) { - emess(-2, *eargv, "input file"); + emess(-2, "input file: %s", *eargv); continue; } emess_dat.File_name = *eargv; -- cgit v1.2.3 From 473a8c133be66af64c227e7d24cb0031ebc6ebd7 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 26 Mar 2019 14:24:48 +0100 Subject: cs2cs: remove dead code that would leak memory. Coverity CID 193534 --- src/apps/cs2cs.cpp | 7 ------- 1 file changed, 7 deletions(-) (limited to 'src/apps') diff --git a/src/apps/cs2cs.cpp b/src/apps/cs2cs.cpp index c68572fa..31f0ae8e 100644 --- a/src/apps/cs2cs.cpp +++ b/src/apps/cs2cs.cpp @@ -274,13 +274,6 @@ static std::string get_geog_crs_proj_string_from_proj_crs(PJ *src, double &toRadians, bool &isLatFirst) { auto srcType = proj_get_type(src); - if (srcType == PJ_TYPE_BOUND_CRS) { - auto base = proj_get_source_crs(nullptr, src); - assert(base); - proj_destroy(src); - src = base; - srcType = proj_get_type(src); - } if (srcType != PJ_TYPE_PROJECTED_CRS) { return std::string(); } -- cgit v1.2.3 From 920ecd18f02d67d3344a3be979748586755a2cf6 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 26 Mar 2019 14:25:27 +0100 Subject: cct.cpp: silence Coverity CID 193536 --- src/apps/cct.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/apps') diff --git a/src/apps/cct.cpp b/src/apps/cct.cpp index 34bf0777..87a60e2f 100644 --- a/src/apps/cct.cpp +++ b/src/apps/cct.cpp @@ -228,6 +228,7 @@ int main(int argc, char **argv) { fout = stdout; + /* coverity[tainted_data] */ o = opt_parse (argc, argv, "hvI", "cdozts", longflags, longkeys); if (nullptr==o) return 0; -- cgit v1.2.3 From a53f81de2f5fc5a6366dfea3806f4062abca4ecf Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 26 Mar 2019 14:27:11 +0100 Subject: cct.cpp: silence Coverity CID 193526 --- src/apps/cct.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/apps') diff --git a/src/apps/cct.cpp b/src/apps/cct.cpp index 87a60e2f..65718aca 100644 --- a/src/apps/cct.cpp +++ b/src/apps/cct.cpp @@ -369,6 +369,7 @@ int main(int argc, char **argv) { point.lpzt.phi = proj_torad (point.lpzt.phi); } err = proj_errno_reset (P); + /* coverity[returned_value] */ point = proj_trans (P, direction, point); if (HUGE_VAL==point.xyzt.x) { -- cgit v1.2.3