fix(sacn): validate universe/start_slot via get_int(), reject fractional input
This commit is contained in:
@@ -424,6 +424,21 @@ static void test_put_sacn_rejects_bad_values(void)
|
||||
TEST_ASSERT_EQUAL_INT(0, fake_save_calls); /* nichts davon darf gespeichert werden */
|
||||
}
|
||||
|
||||
/* universe/start_slot muessen ueber get_int() laufen wie jedes andere Zahlenfeld in dieser
|
||||
* Datei - ein Bruchwert darf nicht klammheimlich auf einen Integer abgeschnitten werden. */
|
||||
static void test_put_sacn_rejects_fractional_numbers(void)
|
||||
{
|
||||
call(NL_HTTP_PUT, "/api/v1/system/settings", TOKEN, "{\"type\":\"sacn\",\"universe\":12.5}");
|
||||
TEST_ASSERT_EQUAL_INT(400, resp.status);
|
||||
TEST_ASSERT_EQUAL_STRING("invalid universe", error_text());
|
||||
|
||||
call(NL_HTTP_PUT, "/api/v1/system/settings", TOKEN, "{\"type\":\"sacn\",\"start_slot\":2.5}");
|
||||
TEST_ASSERT_EQUAL_INT(400, resp.status);
|
||||
TEST_ASSERT_EQUAL_STRING("invalid start_slot", error_text());
|
||||
|
||||
TEST_ASSERT_EQUAL_INT(0, fake_save_calls);
|
||||
}
|
||||
|
||||
/* Ein Board mit RGB braucht 6 Slots: ab 508 passt der Satz nicht mehr ins Universe. */
|
||||
static void test_put_sacn_start_slot_must_leave_room_for_all_slots(void)
|
||||
{
|
||||
@@ -518,6 +533,7 @@ int main(void)
|
||||
RUN_TEST(test_put_sacn_all_fields);
|
||||
RUN_TEST(test_put_sacn_single_field_leaves_rest);
|
||||
RUN_TEST(test_put_sacn_rejects_bad_values);
|
||||
RUN_TEST(test_put_sacn_rejects_fractional_numbers);
|
||||
RUN_TEST(test_put_sacn_start_slot_must_leave_room_for_all_slots);
|
||||
RUN_TEST(test_put_sacn_start_slot_limit_follows_the_board);
|
||||
RUN_TEST(test_info_exposes_sacn_state);
|
||||
|
||||
Reference in New Issue
Block a user