On Tue, Apr 16, 2013 at 03:22:18PM +0200, Vladimir.Marek(a)oracle.com wrote:
+char *
+strndup(const char *s, size_t n)
+{
+ size_t len;
+ char *ret;
+
+ if (!s)
+ return (char *)NULL;
+
+ len = strlen(s);
It would be better to use strnlen() otherwise you cannot use
the strndup() for unterminated strings.
+ if (n < len)
+ len = n;
+
+ ret = malloc(len + 1); /* To store '\0' */
if (!ret)
return NULL;
+ memcpy(ret, s, len);
+ ret[len] = '\0';
+ return ret;
+}
I have applied a little bit different implementation. Please, git pull
and test it. Thanks for your report!
Karel
--
Karel Zak <kzak(a)redhat.com>
http://karelzak.blogspot.com