1
0
mirror of https://github.com/systemd/systemd.git synced 2024-10-28 20:25:38 +03:00

journal: fix field retrieval by name

This commit is contained in:
Lennart Poettering 2011-10-14 04:52:56 +02:00
parent 3fbf9cbb02
commit 161e54f871

View File

@ -493,22 +493,24 @@ int sd_journal_get_field(sd_journal *j, const char *field, const void **data, si
l = le64toh(o->object.size) - offsetof(Object, data.payload); l = le64toh(o->object.size) - offsetof(Object, data.payload);
if (field_length+1 > l) if (l >= field_length+1 &&
continue; memcmp(o->data.payload, field, field_length) == 0 &&
o->data.payload[field_length] == '=') {
if (memcmp(o->data.payload, field, field_length) || t = (size_t) l;
o->data.payload[field_length] != '=')
continue;
t = (size_t) l; if ((uint64_t) t != l)
return -E2BIG;
if ((uint64_t) t != l) *data = o->data.payload;
return -E2BIG; *size = t;
*data = o->data.payload; return 1;
*size = t; }
return 1; r = journal_file_move_to_object(f, f->current_offset, OBJECT_ENTRY, &o);
if (r < 0)
return r;
} }
return 0; return 0;