summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2014-03-27 09:48:33 -0500
committerDan Williams <dcbw@redhat.com>2014-03-27 09:48:33 -0500
commitb5d1fb9c7501e97502aa7504e42963d218710ef2 (patch)
treec954f03d045c99cf133e5cbc5303399ea73621c4
parent6b62a386f9ec01085fa4c512112aaabeb1ee69f6 (diff)
downloadNetworkManager-dcbw/slave-fixes.tar.gz
keyfile: fix warning when list delimiter is at end of linedcbw/slave-fixes
Given a field like "1.2.3.4/24," read_field() would return a zero-length string to the caller, which could then pass that string back to read_field() if it expected more input. read_field() assumes that that this input is non-zero in length and prints a warning: CRITICAL **: read_field: assertion '**current' failed
-rw-r--r--src/settings/plugins/keyfile/reader.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/settings/plugins/keyfile/reader.c b/src/settings/plugins/keyfile/reader.c
index a157dc1334..81becaf6b6 100644
--- a/src/settings/plugins/keyfile/reader.c
+++ b/src/settings/plugins/keyfile/reader.c
@@ -289,6 +289,9 @@ read_field (char **current, char **error, const char *characters, const char *de
/* success, more data available */
*error = NULL;
*(*current)++ = '\0';
+ /* Handle trailing delimiter */
+ if (!*current[0])
+ *current = NULL;
return start;
} else {
/* error, bad character */