journal: properly handle an unexpectedly missing field
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 10 Dec 2015 02:35:49 +0000 (21:35 -0500)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 13 Dec 2015 19:54:47 +0000 (14:54 -0500)
commite64c53fd05496fd9683db8f5130826ad1c6c515d
treeee8a88d021e5de87ff14dae5c5116fbeff43b7c1
parentc9811ac800df461b010909f343a2e0251b6b57d4
journal: properly handle an unexpectedly missing field

parse_field() checks if the field has the expected format, and returns
0 if it doesn't. In that case, value and size are not
set. Nevertheless, we would try to continue, and hit an assert in
safe_atou64. This case shouldn't happen, unless sd_j_get_data is borked,
so cleanly assert that we got the expected field.

Also, oom is the only way that parse_field can fail, which we log
already. Instead of outputting a debug statement and carrying on,
treat oom as fatal.
src/shared/logs-show.c