[Qemu-devel] [PATCH 03/24] tests/test-cutils: Add missing qemu_strtol()... endptr checks

Markus Armbruster posted 24 patches 8 years, 11 months ago
There is a newer version of this series
[Qemu-devel] [PATCH 03/24] tests/test-cutils: Add missing qemu_strtol()... endptr checks
Posted by Markus Armbruster 8 years, 11 months ago
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 tests/test-cutils.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/tests/test-cutils.c b/tests/test-cutils.c
index 20b0f59..71681dc 100644
--- a/tests/test-cutils.c
+++ b/tests/test-cutils.c
@@ -262,6 +262,7 @@ static void test_qemu_strtol_empty(void)
     err = qemu_strtol(str, &endptr, 0, &res);
 
     g_assert_cmpint(err, ==, -EINVAL);
+    g_assert(endptr == str);
 }
 
 static void test_qemu_strtol_whitespace(void)
@@ -275,6 +276,7 @@ static void test_qemu_strtol_whitespace(void)
     err = qemu_strtol(str, &endptr, 0, &res);
 
     g_assert_cmpint(err, ==, -EINVAL);
+    g_assert(endptr == str);
 }
 
 static void test_qemu_strtol_invalid(void)
@@ -288,6 +290,7 @@ static void test_qemu_strtol_invalid(void)
     err = qemu_strtol(str, &endptr, 0, &res);
 
     g_assert_cmpint(err, ==, -EINVAL);
+    g_assert(endptr == str);
 }
 
 static void test_qemu_strtol_trailing(void)
@@ -548,6 +551,7 @@ static void test_qemu_strtoul_empty(void)
     err = qemu_strtoul(str, &endptr, 0, &res);
 
     g_assert_cmpint(err, ==, -EINVAL);
+    g_assert(endptr == str);
 }
 
 static void test_qemu_strtoul_whitespace(void)
@@ -561,6 +565,7 @@ static void test_qemu_strtoul_whitespace(void)
     err = qemu_strtoul(str, &endptr, 0, &res);
 
     g_assert_cmpint(err, ==, -EINVAL);
+    g_assert(endptr == str);
 }
 
 static void test_qemu_strtoul_invalid(void)
@@ -574,6 +579,7 @@ static void test_qemu_strtoul_invalid(void)
     err = qemu_strtoul(str, &endptr, 0, &res);
 
     g_assert_cmpint(err, ==, -EINVAL);
+    g_assert(endptr == str);
 }
 
 static void test_qemu_strtoul_trailing(void)
@@ -829,6 +835,7 @@ static void test_qemu_strtoll_empty(void)
     err = qemu_strtoll(str, &endptr, 0, &res);
 
     g_assert_cmpint(err, ==, -EINVAL);
+    g_assert(endptr == str);
 }
 
 static void test_qemu_strtoll_whitespace(void)
@@ -842,6 +849,7 @@ static void test_qemu_strtoll_whitespace(void)
     err = qemu_strtoll(str, &endptr, 0, &res);
 
     g_assert_cmpint(err, ==, -EINVAL);
+    g_assert(endptr == str);
 }
 
 static void test_qemu_strtoll_invalid(void)
@@ -855,6 +863,7 @@ static void test_qemu_strtoll_invalid(void)
     err = qemu_strtoll(str, &endptr, 0, &res);
 
     g_assert_cmpint(err, ==, -EINVAL);
+    g_assert(endptr == str);
 }
 
 static void test_qemu_strtoll_trailing(void)
@@ -1113,6 +1122,7 @@ static void test_qemu_strtoull_empty(void)
     err = qemu_strtoull(str, &endptr, 0, &res);
 
     g_assert_cmpint(err, ==, -EINVAL);
+    g_assert(endptr == str);
 }
 
 static void test_qemu_strtoull_whitespace(void)
@@ -1126,6 +1136,7 @@ static void test_qemu_strtoull_whitespace(void)
     err = qemu_strtoull(str, &endptr, 0, &res);
 
     g_assert_cmpint(err, ==, -EINVAL);
+    g_assert(endptr == str);
 }
 
 static void test_qemu_strtoull_invalid(void)
@@ -1139,6 +1150,7 @@ static void test_qemu_strtoull_invalid(void)
     err = qemu_strtoull(str, &endptr, 0, &res);
 
     g_assert_cmpint(err, ==, -EINVAL);
+    g_assert(endptr == str);
 }
 
 static void test_qemu_strtoull_trailing(void)
-- 
2.7.4


Re: [Qemu-devel] [PATCH 03/24] tests/test-cutils: Add missing qemu_strtol()... endptr checks
Posted by Eric Blake 8 years, 11 months ago
On 02/14/2017 04:25 AM, Markus Armbruster wrote:
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  tests/test-cutils.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/tests/test-cutils.c b/tests/test-cutils.c
> index 20b0f59..71681dc 100644
> --- a/tests/test-cutils.c
> +++ b/tests/test-cutils.c
> @@ -262,6 +262,7 @@ static void test_qemu_strtol_empty(void)
>      err = qemu_strtol(str, &endptr, 0, &res);
>  
>      g_assert_cmpint(err, ==, -EINVAL);
> +    g_assert(endptr == str);
>  }

In other words, enforce more of our contract that even on errors, endptr
is set to a documented value.

Reviewed-by: Eric Blake <eblake@redhat.com>

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Re: [Qemu-devel] [PATCH 03/24] tests/test-cutils: Add missing qemu_strtol()... endptr checks
Posted by Philippe Mathieu-Daudé 8 years, 11 months ago
On 02/14/2017 07:25 AM, Markus Armbruster wrote:
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
>  tests/test-cutils.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/tests/test-cutils.c b/tests/test-cutils.c
> index 20b0f59..71681dc 100644
> --- a/tests/test-cutils.c
> +++ b/tests/test-cutils.c
> @@ -262,6 +262,7 @@ static void test_qemu_strtol_empty(void)
>      err = qemu_strtol(str, &endptr, 0, &res);
>
>      g_assert_cmpint(err, ==, -EINVAL);
> +    g_assert(endptr == str);
>  }
>
>  static void test_qemu_strtol_whitespace(void)
> @@ -275,6 +276,7 @@ static void test_qemu_strtol_whitespace(void)
>      err = qemu_strtol(str, &endptr, 0, &res);
>
>      g_assert_cmpint(err, ==, -EINVAL);
> +    g_assert(endptr == str);
>  }
>
>  static void test_qemu_strtol_invalid(void)
> @@ -288,6 +290,7 @@ static void test_qemu_strtol_invalid(void)
>      err = qemu_strtol(str, &endptr, 0, &res);
>
>      g_assert_cmpint(err, ==, -EINVAL);
> +    g_assert(endptr == str);
>  }
>
>  static void test_qemu_strtol_trailing(void)
> @@ -548,6 +551,7 @@ static void test_qemu_strtoul_empty(void)
>      err = qemu_strtoul(str, &endptr, 0, &res);
>
>      g_assert_cmpint(err, ==, -EINVAL);
> +    g_assert(endptr == str);
>  }
>
>  static void test_qemu_strtoul_whitespace(void)
> @@ -561,6 +565,7 @@ static void test_qemu_strtoul_whitespace(void)
>      err = qemu_strtoul(str, &endptr, 0, &res);
>
>      g_assert_cmpint(err, ==, -EINVAL);
> +    g_assert(endptr == str);
>  }
>
>  static void test_qemu_strtoul_invalid(void)
> @@ -574,6 +579,7 @@ static void test_qemu_strtoul_invalid(void)
>      err = qemu_strtoul(str, &endptr, 0, &res);
>
>      g_assert_cmpint(err, ==, -EINVAL);
> +    g_assert(endptr == str);
>  }
>
>  static void test_qemu_strtoul_trailing(void)
> @@ -829,6 +835,7 @@ static void test_qemu_strtoll_empty(void)
>      err = qemu_strtoll(str, &endptr, 0, &res);
>
>      g_assert_cmpint(err, ==, -EINVAL);
> +    g_assert(endptr == str);
>  }
>
>  static void test_qemu_strtoll_whitespace(void)
> @@ -842,6 +849,7 @@ static void test_qemu_strtoll_whitespace(void)
>      err = qemu_strtoll(str, &endptr, 0, &res);
>
>      g_assert_cmpint(err, ==, -EINVAL);
> +    g_assert(endptr == str);
>  }
>
>  static void test_qemu_strtoll_invalid(void)
> @@ -855,6 +863,7 @@ static void test_qemu_strtoll_invalid(void)
>      err = qemu_strtoll(str, &endptr, 0, &res);
>
>      g_assert_cmpint(err, ==, -EINVAL);
> +    g_assert(endptr == str);
>  }
>
>  static void test_qemu_strtoll_trailing(void)
> @@ -1113,6 +1122,7 @@ static void test_qemu_strtoull_empty(void)
>      err = qemu_strtoull(str, &endptr, 0, &res);
>
>      g_assert_cmpint(err, ==, -EINVAL);
> +    g_assert(endptr == str);
>  }
>
>  static void test_qemu_strtoull_whitespace(void)
> @@ -1126,6 +1136,7 @@ static void test_qemu_strtoull_whitespace(void)
>      err = qemu_strtoull(str, &endptr, 0, &res);
>
>      g_assert_cmpint(err, ==, -EINVAL);
> +    g_assert(endptr == str);
>  }
>
>  static void test_qemu_strtoull_invalid(void)
> @@ -1139,6 +1150,7 @@ static void test_qemu_strtoull_invalid(void)
>      err = qemu_strtoull(str, &endptr, 0, &res);
>
>      g_assert_cmpint(err, ==, -EINVAL);
> +    g_assert(endptr == str);
>  }
>
>  static void test_qemu_strtoull_trailing(void)
>