bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] kern: fix mig_strncpy


From: Justus Winter
Subject: [PATCH] kern: fix mig_strncpy
Date: Fri, 21 Feb 2014 23:12:20 +0100

Previously, the function mig_strncpy would always zero-terminate the
destination string.  Make mig_strncpy behave like mig_strncpy and
strncpy in the glibc.  Also fix the implementation of mig_strncpy to
return the length of the written string to align the implementation
with the declaration in include/mach/mig_support.h.

* kern/ipc_mig.c (mig_strncpy): Do not zero-terminate the destination
string.  Return length of destination string.
---
 kern/ipc_mig.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/kern/ipc_mig.c b/kern/ipc_mig.c
index bbc38cf..a52dcb9 100644
--- a/kern/ipc_mig.c
+++ b/kern/ipc_mig.c
@@ -285,22 +285,23 @@ mig_put_reply_port(
  *
  *     len - Length of destination buffer.
  */
-void mig_strncpy(dest, src, len)
+vm_size_t
+mig_strncpy(dest, src, len)
 char *dest;
 const char *src;
 int len;
 {
+    char *dest_ = dest;
     int i;
 
     if (len <= 0)
-       return;
+       return 0;
 
-    for (i=1; i<len; i++)
+    for (i=0; i<len; i++)
        if (! (*dest++ = *src++))
-           return;
+           break;
 
-    *dest = '\0';
-    return;
+    return dest - dest_;
 }
 
 #define        fast_send_right_lookup(name, port, abort)                       
\
-- 
1.8.5.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]