diff options
author | Dan Williams <dcbw@redhat.com> | 2014-03-27 09:48:33 -0500 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2014-03-27 09:48:33 -0500 |
commit | b5d1fb9c7501e97502aa7504e42963d218710ef2 (patch) | |
tree | c954f03d045c99cf133e5cbc5303399ea73621c4 | |
parent | 6b62a386f9ec01085fa4c512112aaabeb1ee69f6 (diff) | |
download | NetworkManager-b5d1fb9c7501e97502aa7504e42963d218710ef2.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.c | 3 |
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 */ |