diff options
author | Richard Braun <rbraun@sceen.net> | 2017-06-28 01:02:34 +0200 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2017-06-28 01:02:34 +0200 |
commit | 2d2e8f93303fc7b19ab19020013145144be90fa3 (patch) | |
tree | a63c24e044d7b52ffc9d4d2e65427df3cca13ea8 /kern/string.c | |
parent | 4dfe9abddbe18036ff4e4e2422491cb928563d2e (diff) |
kern/string: make strncmp handling of size 0 more intuitive
Diffstat (limited to 'kern/string.c')
-rw-r--r-- | kern/string.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/kern/string.c b/kern/string.c index 7508e79..6c40478 100644 --- a/kern/string.c +++ b/kern/string.c @@ -21,6 +21,7 @@ #include <stddef.h> #include <string.h> +#include <kern/macros.h> #include <machine/string.h> #ifndef STRING_ARCH_MEMCPY @@ -189,8 +190,9 @@ strncmp(const char *s1, const char *s2, size_t n) { char c1, c2; - c1 = '\0'; - c2 = '\0'; + if (unlikely(n == 0)) { + return 0; + } while ((n != 0) && (c1 = *s1) == (c2 = *s2)) { if (c1 == '\0') { |