From d934a052348c1fa017ff677d08e74c643e3f416c Mon Sep 17 00:00:00 2001 From: Tom Lane <tgl@sss.pgh.pa.us> Date: Tue, 25 Nov 2014 15:16:49 -0500 Subject: [PATCH] Fix uninitialized-variable warning. In passing, add an Assert defending the presumption that bytes_left is positive to start with. (I'm not exactly convinced that using an unsigned type was such a bright thing here, but let's at least do this much.) --- src/backend/utils/misc/guc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index f04757c5826..6b4db305e58 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -8741,9 +8741,10 @@ SerializeGUCState(Size maxsize, char *start_address) Size actual_size; Size bytes_left; int i; - int i_role; + int i_role = -1; /* Reserve space for saving the actual size of the guc state */ + Assert(maxsize > sizeof(actual_size)); curptr = start_address + sizeof(actual_size); bytes_left = maxsize - sizeof(actual_size); @@ -8759,7 +8760,8 @@ SerializeGUCState(Size maxsize, char *start_address) else serialize_variable(&curptr, &bytes_left, guc_variables[i]); } - serialize_variable(&curptr, &bytes_left, guc_variables[i_role]); + if (i_role >= 0) + serialize_variable(&curptr, &bytes_left, guc_variables[i_role]); /* Store actual size without assuming alignment of start_address. */ actual_size = maxsize - bytes_left - sizeof(actual_size); -- GitLab