diff options
| author | Even Rouault <even.rouault@mines-paris.org> | 2019-04-23 21:53:57 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-04-23 21:53:57 +0200 |
| commit | 8cfd9ca89c89b52a3c22d5ee7ecbe06791924a15 (patch) | |
| tree | d769eb2ed41cefc2abfb794a35ce006fea689bd9 /src/apps/proj.cpp | |
| parent | 28cdae60149de8b38f7e10072326bb714b79ef0a (diff) | |
| parent | 8a31ed4036888ff2039919f8c998a90cb2143bc2 (diff) | |
| download | PROJ-8cfd9ca89c89b52a3c22d5ee7ecbe06791924a15.tar.gz PROJ-8cfd9ca89c89b52a3c22d5ee7ecbe06791924a15.zip | |
Merge pull request #1434 from rouault/valid_format_string
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); |
