diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2019-04-19 23:47:39 +0200 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2019-04-20 09:19:41 +0200 |
| commit | 8a31ed4036888ff2039919f8c998a90cb2143bc2 (patch) | |
| tree | 25302c86a4161a2e11a076a9e3c9cb4bf8b418c7 /src/apps/proj.cpp | |
| parent | e1da8e5f6933bfb914dccb26a755a23b5ce9f36f (diff) | |
| download | PROJ-8a31ed4036888ff2039919f8c998a90cb2143bc2.tar.gz PROJ-8a31ed4036888ff2039919f8c998a90cb2143bc2.zip | |
proj/cs2cs: validate value of -f parameter to avoid potential crashes (fixes #124)
Diffstat (limited to 'src/apps/proj.cpp')
| -rw-r--r-- | src/apps/proj.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/apps/proj.cpp b/src/apps/proj.cpp index 2af49c34..888d723f 100644 --- a/src/apps/proj.cpp +++ b/src/apps/proj.cpp @@ -7,6 +7,7 @@ #include <string.h> #include <math.h> #include "emess.h" +#include "utils.h" #if defined(MSDOS) || defined(OS2) || defined(WIN32) || defined(__WIN32__) # include <fcntl.h> @@ -461,6 +462,13 @@ int main(int argc, char **argv) { if (eargc == 0) /* if no specific files force sysin */ eargv[eargc++] = const_cast<char*>("-"); + if( oform ) { + if( !validate_form_string_for_numbers(oform) ) { + emess(3, "invalid format string"); + exit(0); + } + } + /* done with parameter and control input */ if (inverse && postscale) { prescale = 1; @@ -487,7 +495,6 @@ int main(int argc, char **argv) { proj.inv = pj_inv; } else proj.fwd = pj_fwd; - /* set input formatting control */ if (mon) { pj_pr_list(Proj); |
