Skip to content

Commit 9c02903

Browse files
committed
Add validation for discriminator option
1 parent 73a3fba commit 9c02903

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

examples/all-devices-app/posix/app_options/AppOptions.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,17 @@ bool AppOptions::AllDevicesAppOptionHandler(const char * program, OptionSet * op
5858
case kOptionKVS:
5959
mConfig.kvsPath = value;
6060
return true;
61-
case kOptionDiscriminator:
62-
mConfig.discriminator.SetValue(static_cast<uint16_t>(strtoul(value, nullptr, 0)));
61+
case kOptionDiscriminator: {
62+
char * endptr;
63+
unsigned long val = strtoul(value, &endptr, 0);
64+
if (*endptr != '\0' || val > 0xFFF)
65+
{
66+
ChipLogError(Support, "Invalid discriminator: %s\n", value);
67+
return false;
68+
}
69+
mConfig.discriminator.SetValue(static_cast<uint16_t>(val));
6370
return true;
71+
}
6472
case kOptionVendorId:
6573
mConfig.vendorId.SetValue(static_cast<uint16_t>(strtoul(value, nullptr, 0)));
6674
return true;

0 commit comments

Comments
 (0)