From f94f1ddeaa83bab4f6f3f9d5720a777e569c781b Mon Sep 17 00:00:00 2001 From: "backporting[bot]" <42222807+backporting[bot]@users.noreply.github.com> Date: Fri, 18 Oct 2019 22:40:53 +0200 Subject: [Backport 6.2] Fix segfaults in case of out-of-memory situations (#1684) (fixes #1678) --- src/datum_set.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/datum_set.cpp') diff --git a/src/datum_set.cpp b/src/datum_set.cpp index c1cb4cb9..873d7be5 100644 --- a/src/datum_set.cpp +++ b/src/datum_set.cpp @@ -85,10 +85,22 @@ int pj_datum_set(projCtx ctx, paralist *pl, PJ *projdef) entry[ sizeof(entry) - 1 ] = '\0'; curr = curr->next = pj_mkparam(entry); + if (nullptr == curr) + { + pj_ctx_set_errno(ctx, ENOMEM); + return 1; + } } if( pj_datums[i].defn && strlen(pj_datums[i].defn) > 0 ) + { curr = curr->next = pj_mkparam(pj_datums[i].defn); + if (nullptr == curr) + { + pj_ctx_set_errno(ctx, ENOMEM); + return 1; + } + } (void)curr; /* make clang static analyzer happy */ } -- cgit v1.2.3