aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/4D_api.cpp2
-rw-r--r--test/unit/gie_self_tests.cpp4
2 files changed, 5 insertions, 1 deletions
diff --git a/src/4D_api.cpp b/src/4D_api.cpp
index 26e9456e..f37594b5 100644
--- a/src/4D_api.cpp
+++ b/src/4D_api.cpp
@@ -1557,7 +1557,7 @@ PJ_GRID_INFO proj_grid_info(const char *gridname) {
memset(&grinfo, 0, sizeof(PJ_GRID_INFO));
/* in case the grid wasn't found */
- if (gridinfo->filename == nullptr) {
+ if (gridinfo->filename == nullptr || gridinfo->ct == nullptr) {
pj_gridinfo_free(ctx, gridinfo);
strcpy(grinfo.format, "missing");
return grinfo;
diff --git a/test/unit/gie_self_tests.cpp b/test/unit/gie_self_tests.cpp
index 15db814a..a738db75 100644
--- a/test/unit/gie_self_tests.cpp
+++ b/test/unit/gie_self_tests.cpp
@@ -386,6 +386,10 @@ TEST(gie, info_functions) {
grid_info = proj_grid_info("nonexistinggrid");
ASSERT_EQ(std::string(grid_info.filename), "");
+ // File exists, but is not a grid
+ grid_info = proj_grid_info("proj.db");
+ ASSERT_EQ(std::string(grid_info.filename), "");
+
/* proj_init_info() */
init_info = proj_init_info("unknowninit");
ASSERT_EQ(std::string(init_info.filename), "");