The following pull request was submitted through Github. It can be accessed and reviewed at: https://github.com/lxc/lxc/pull/2420
This e-mail was sent by the LXC bot, direct replies will not reach the author unless they happen to be subscribed to this list. === Description (from pull-request) === CC: Donghwa Jeong <dh48.je...@samsung.com> Signed-off-by: Christian Brauner <christian.brau...@ubuntu.com>
From 9a5e7ac4a9fe963349717592a5f642f213ab5dae Mon Sep 17 00:00:00 2001 From: Christian Brauner <christian.brau...@ubuntu.com> Date: Wed, 20 Jun 2018 13:44:02 +0200 Subject: [PATCH] include: add strlcat() implementation CC: Donghwa Jeong <dh48.je...@samsung.com> Signed-off-by: Christian Brauner <christian.brau...@ubuntu.com> --- configure.ac | 4 ++++ src/include/strlcat.c | 37 +++++++++++++++++++++++++++++++++++++ src/include/strlcat.h | 29 +++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 src/include/strlcat.c create mode 100644 src/include/strlcat.h diff --git a/configure.ac b/configure.ac index 96dd66594..c24f8f3ee 100644 --- a/configure.ac +++ b/configure.ac @@ -632,6 +632,10 @@ AC_CHECK_FUNCS([strlcpy], AM_CONDITIONAL(HAVE_STRLCPY, true) AC_DEFINE(HAVE_STRLCPY,1,[Have strlcpy]), AM_CONDITIONAL(HAVE_STRLCPY, false)) +AC_CHECK_FUNCS([strlcat], + AM_CONDITIONAL(HAVE_STRLCAT, true) + AC_DEFINE(HAVE_STRLCAT,1,[Have strlcat]), + AM_CONDITIONAL(HAVE_STRLCAT, false)) # Check for some libraries AX_PTHREAD diff --git a/src/include/strlcat.c b/src/include/strlcat.c new file mode 100644 index 000000000..42fa3f32c --- /dev/null +++ b/src/include/strlcat.c @@ -0,0 +1,37 @@ +/* liblxcapi + * + * Copyright © 2018 Christian Brauner <christ...@brauner.io>. + * Copyright © 2018 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * This function has been copied from musl. + */ + +#include <limits.h> +#include <stdint.h> +#include <string.h> + +#ifndef HAVE_STRLCPY +#include "strlcpy.h" +#endif + +size_t strlcat(char *d, const char *s, size_t n) +{ + size_t l = strnlen(d, n); + if (l == n) + return l + strlen(s); + + return l + strlcpy(d + l, s, n - l); +} diff --git a/src/include/strlcat.h b/src/include/strlcat.h new file mode 100644 index 000000000..1b51e00e6 --- /dev/null +++ b/src/include/strlcat.h @@ -0,0 +1,29 @@ +/* liblxcapi + * + * Copyright © 2018 Christian Brauner <christ...@brauner.io>. + * Copyright © 2018 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * This function has been copied from musl. + */ + +#ifndef _STRLCAT_H +#define _STRLCAT_H + +#include <stdio.h> + +extern size_t strlcat(char *d, const char *s, size_t n); + +#endif
_______________________________________________ lxc-devel mailing list lxc-devel@lists.linuxcontainers.org http://lists.linuxcontainers.org/listinfo/lxc-devel