Applied, thanks!

Flavio Cruz, le dim. 09 févr. 2025 22:37:13 -0500, a ecrit:
> ---
>  kern/ipc_mig.c | 25 +++++++++++++------------
>  1 file changed, 13 insertions(+), 12 deletions(-)
> 
> diff --git a/kern/ipc_mig.c b/kern/ipc_mig.c
> index 18ac88ef..b6543703 100644
> --- a/kern/ipc_mig.c
> +++ b/kern/ipc_mig.c
> @@ -273,10 +273,12 @@ mig_put_reply_port(
>  /*
>   * mig_strncpy.c - by Joshua Block
>   *
> - * mig_strncpy -- Bounded string copy.  Does what the library routine
> + * mig_strncpy -- Bounded string copy.  Does almost what the library routine
>   * strncpy does: Copies the (null terminated) string in src into dest,
> - * a buffer of length len.  Returns the length of the destination
> - * string excluding the terminating null.
> + * a buffer of length len, but ensures dest is null terminated. If len is
> + * less than the length of the src string plus the null character, the
> + * string is truncated.
> + * Returns the length of the destination string excluding the terminating 
> null.
>   *
>   * Parameters:
>   *
> @@ -289,20 +291,19 @@ mig_put_reply_port(
>  vm_size_t
>  mig_strncpy(char *dest, const char *src, vm_size_t len)
>  {
> -     char *dest_ = dest;
> -     int i;
> +     vm_size_t i;
>  
> -     if (len <= 0)
> +     if (len == 0)
>               return 0;
>  
> -     for (i = 0; i < len; i++) {
> -             if (! (*dest = *src))
> -                     break;
> -             dest++;
> -             src++;
> +     for (i = 0; i < len - 1; i++) {
> +             if (! (*dest++ = *src++))
> +                     return i;
>       }
>  
> -     return dest - dest_;
> +     /* Always null terminate the string. */
> +     *dest = '\0';
> +     return len - 1;
>  }
>  
>  /* Called by MiG to deallocate memory, which in this case happens
> -- 
> 2.47.2
> 
> 

-- 
Samuel
<i> ben oui ce serait idiot, mais osb
  -+- m'en fous de faire un truc débile ! -+-

Reply via email to