summaryrefslogtreecommitdiff
path: root/kern/string.c
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2017-06-28 01:02:34 +0200
committerRichard Braun <rbraun@sceen.net>2017-06-28 01:02:34 +0200
commit2d2e8f93303fc7b19ab19020013145144be90fa3 (patch)
treea63c24e044d7b52ffc9d4d2e65427df3cca13ea8 /kern/string.c
parent4dfe9abddbe18036ff4e4e2422491cb928563d2e (diff)
kern/string: make strncmp handling of size 0 more intuitive
Diffstat (limited to 'kern/string.c')
-rw-r--r--kern/string.c6
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') {