[PATCH weston] Revert "config-parser: Catch negative numbers assigned to unsigned config values"
Bryce Harrington
bryce at osg.samsung.com
Wed Jul 13 20:27:29 UTC 2016
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 6351fb08c2e302f8696b2022830e5317e7219c39.
Signed-off-by: Bryce Harrington <bryce at osg.samsung.com>
---
shared/config-parser.c | 12 +-----------
tests/config-parser-test.c | 31 -------------------------------
2 files changed, 1 insertion(+), 42 deletions(-)
diff --git a/shared/config-parser.c b/shared/config-parser.c
index 4c67220..1e08759 100644
--- a/shared/config-parser.c
+++ b/shared/config-parser.c
@@ -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;
}
diff --git a/tests/config-parser-test.c b/tests/config-parser-test.c
index f88e89b..735da4e 100644
--- a/tests/config-parser-test.c
+++ b/tests/config-parser-test.c
@@ -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;
--
1.9.1
More information about the wayland-devel
mailing list