From 53a8cbbec1a6c9c644b35da86bc26a33ff1279e0 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sat, 19 Jan 2019 17:49:05 +0100 Subject: Add support for spaces in grid name parameters (fixes #1152) --- src/4D_api.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/4D_api.cpp') diff --git a/src/4D_api.cpp b/src/4D_api.cpp index 37afd289..642fbb1f 100644 --- a/src/4D_api.cpp +++ b/src/4D_api.cpp @@ -473,10 +473,11 @@ Returns 1 on success, 0 on failure p = pj_param_exists (P->params, "geoidgrids"); if (p && strlen (p->param) > strlen ("geoidgrids=")) { char *gridnames = p->param + strlen ("geoidgrids="); - char *def = static_cast(malloc (100+strlen(gridnames))); + char *def = static_cast(malloc (100+2*strlen(gridnames))); if (nullptr==def) return 0; - sprintf (def, "break_cs2cs_recursion proj=vgridshift grids=%s", gridnames); + sprintf (def, "break_cs2cs_recursion proj=vgridshift grids=%s", + pj_double_quote_string_param_if_needed(gridnames).c_str()); Q = pj_create_internal (P->ctx, def); free (def); if (nullptr==Q) @@ -488,10 +489,11 @@ Returns 1 on success, 0 on failure p = pj_param_exists (P->params, "nadgrids"); if (p && strlen (p->param) > strlen ("nadgrids=")) { char *gridnames = p->param + strlen ("nadgrids="); - char *def = static_cast(malloc (100+strlen(gridnames))); + char *def = static_cast(malloc (100+2*strlen(gridnames))); if (nullptr==def) return 0; - sprintf (def, "break_cs2cs_recursion proj=hgridshift grids=%s", gridnames); + sprintf (def, "break_cs2cs_recursion proj=hgridshift grids=%s", + pj_double_quote_string_param_if_needed(gridnames).c_str()); Q = pj_create_internal (P->ctx, def); free (def); if (nullptr==Q) -- cgit v1.2.3