vici: Return default value for get_int() if message value is empty string
This is the behavior of some strtol() implementations, and it makes sense, so force it.
This commit is contained in:
@@ -347,7 +347,7 @@ START_TEST(test_get_int)
|
||||
ck_assert_int_eq(m->get_int(m, 2, "section1.key2"), 0x12);
|
||||
ck_assert_int_eq(m->get_int(m, 2, "section1.section2.key3"), -1);
|
||||
ck_assert_int_eq(m->get_int(m, 2, "section1.key4"), 2);
|
||||
ck_assert_int_eq(m->get_int(m, 2, "key5"), 0);
|
||||
ck_assert_int_eq(m->get_int(m, 2, "key5"), 2);
|
||||
ck_assert_int_eq(m->get_int(m, 2, "nonexistent"), 2);
|
||||
ck_assert_int_eq(m->get_int(m, 2, "n.o.n.e.x.i.s.t.e.n.t"), 2);
|
||||
|
||||
|
||||
@@ -355,6 +355,10 @@ METHOD(vici_message_t, vget_int, int,
|
||||
found = find_value(this, &value, fmt, args);
|
||||
if (found)
|
||||
{
|
||||
if (value.len == 0)
|
||||
{
|
||||
return def;
|
||||
}
|
||||
if (chunk_printable(value, NULL, 0))
|
||||
{
|
||||
snprintf(buf, sizeof(buf), "%.*s", (int)value.len, value.ptr);
|
||||
|
||||
Reference in New Issue
Block a user