Revert "config-parser: Catch negative numbers assigned to unsigned config values"

The reduction in range limits does have an effect for color values,
which are expressed as hexadecimal values from 0x00000000 to
0xFFFFFFFF.  By limiting the range to INT_MAX, color values of
0x80000000 and up are in fact lost.

This reverts commit 6351fb08c2.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Acked-by: Derek Foreman <derekf@osg.samsung.com>
Tested-by: Yong Bakos <ybakos@humanoriented.com>
This commit is contained in:
Bryce Harrington 2016-07-13 13:27:29 -07:00
parent a8d987d93c
commit 03793e3998
2 changed files with 1 additions and 42 deletions

View File

@ -186,7 +186,6 @@ weston_config_section_get_uint(struct weston_config_section *section,
const char *key,
uint32_t *value, uint32_t default_value)
{
long int ret;
struct weston_config_entry *entry;
char *end;
@ -198,22 +197,13 @@ weston_config_section_get_uint(struct weston_config_section *section,
}
errno = 0;
ret = strtol(entry->value, &end, 0);
*value = strtoul(entry->value, &end, 0);
if (errno != 0 || end == entry->value || *end != '\0') {
*value = default_value;
errno = EINVAL;
return -1;
}
/* check range */
if (ret < 0 || ret > INT_MAX) {
*value = default_value;
errno = ERANGE;
return -1;
}
*value = ret;
return 0;
}

View File

@ -117,7 +117,6 @@ static struct zuc_fixture config_test_t1 = {
"# more comments\n"
"number=5252\n"
"zero=0\n"
"negative=-42\n"
"flag=false\n"
"\n"
"[stuff]\n"
@ -462,36 +461,6 @@ ZUC_TEST_F(config_test_t1, test019, data)
ZUC_ASSERT_EQ(0, errno);
}
ZUC_TEST_F(config_test_t1, test020, data)
{
int r;
int32_t n;
struct weston_config_section *section;
struct weston_config *config = data;
section = weston_config_get_section(config, "bar", NULL, NULL);
r = weston_config_section_get_int(section, "negative", &n, 600);
ZUC_ASSERT_EQ(0, r);
ZUC_ASSERT_EQ(-42, n);
ZUC_ASSERT_EQ(0, errno);
}
ZUC_TEST_F(config_test_t1, test021, data)
{
int r;
uint32_t n;
struct weston_config_section *section;
struct weston_config *config = data;
section = weston_config_get_section(config, "bar", NULL, NULL);
r = weston_config_section_get_uint(section, "negative", &n, 600);
ZUC_ASSERT_EQ(-1, r);
ZUC_ASSERT_EQ(600, n);
ZUC_ASSERT_EQ(ERANGE, errno);
}
ZUC_TEST_F(config_test_t2, doesnt_parse, data)
{
struct weston_config *config = data;