From 796ff2ca000fa6a6e37df45875ba109ff26a003d Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Fri, 21 Feb 2014 22:03:30 +0100 Subject: add fix-mig_strncpy.patch --- debian/patches/fix-mig_strncpy.patch | 49 ++++++++++++++++++++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 50 insertions(+) create mode 100644 debian/patches/fix-mig_strncpy.patch (limited to 'debian/patches') diff --git a/debian/patches/fix-mig_strncpy.patch b/debian/patches/fix-mig_strncpy.patch new file mode 100644 index 0000000..932e8b1 --- /dev/null +++ b/debian/patches/fix-mig_strncpy.patch @@ -0,0 +1,49 @@ +commit fbad2b61020cccb8afa26968690e02bb62d1cc78 +Author: Justus Winter <4winter@informatik.uni-hamburg.de> +Date: Fri Feb 21 21:57:37 2014 +0100 + + kern: fix mig_strncpy + + 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. + +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