aboutsummaryrefslogtreecommitdiff
path: root/src/apps
diff options
context:
space:
mode:
authorKristian Evers <kristianevers@gmail.com>2019-03-27 07:35:32 +0100
committerGitHub <noreply@github.com>2019-03-27 07:35:32 +0100
commitcc0326748ba04cac6d9409543e6fad112bca36b6 (patch)
treea422e160995a0ecb117e145d7b48e77e975a1d4c /src/apps
parent4754220ec8e3febd3d96e8096df8291c7a78fdb1 (diff)
parentc05a91da2e9e008d77bd148d4de62045f9f149c8 (diff)
downloadPROJ-cc0326748ba04cac6d9409543e6fad112bca36b6.tar.gz
PROJ-cc0326748ba04cac6d9409543e6fad112bca36b6.zip
Merge pull request #1373 from rouault/coverity_fixes
Coverity fixes
Diffstat (limited to 'src/apps')
-rw-r--r--src/apps/cct.cpp2
-rw-r--r--src/apps/cs2cs.cpp7
-rw-r--r--src/apps/emess.cpp2
-rw-r--r--src/apps/gie.cpp1
-rw-r--r--src/apps/optargpm.h5
-rw-r--r--src/apps/proj.cpp2
-rw-r--r--src/apps/projinfo.cpp17
7 files changed, 22 insertions, 14 deletions
diff --git a/src/apps/cct.cpp b/src/apps/cct.cpp
index 34bf0777..65718aca 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;
@@ -368,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) {
diff --git a/src/apps/cs2cs.cpp b/src/apps/cs2cs.cpp
index 55b38bbc..877a68ff 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();
}
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/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;
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];
diff --git a/src/apps/proj.cpp b/src/apps/proj.cpp
index 5f0ee71f..2af49c34 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;
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;