From fd8de691ebaedc69227ad9921d304df804bf61a1 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Wed, 25 Mar 2015 14:07:34 -0700 Subject: [PATCH] Fix layer name crash when reading from the standard input --- geojson.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/geojson.c b/geojson.c index c9e30817..377aeff2 100644 --- a/geojson.c +++ b/geojson.c @@ -671,13 +671,17 @@ int read_json(int argc, char **argv, char *fname, const char *layername, int max char *layernames[nlayers]; for (i = 0; i < nlayers; i++) { - if (argc == 1 && layername != NULL) { + if (argc <= 1 && layername != NULL) { layernames[i] = strdup(layername); } else { - char *trunc = layernames[i] = malloc(strlen(argv[i]) + 1); + char *src = argv[i]; + if (argc < 1) { + src = fname; + } - const char *ocp, *use = argv[i]; - for (ocp = argv[i]; *ocp; ocp++) { + char *trunc = layernames[i] = malloc(strlen(src) + 1); + const char *ocp, *use = src; + for (ocp = src; *ocp; ocp++) { if (*ocp == '/' && ocp[1] != '\0') { use = ocp + 1; }