]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/strlcpy.c
zebra, lib: fix the ZEBRA_INTERFACE_VRF_UPDATE zapi message
[mirror_frr.git] / lib / strlcpy.c
index 112c8180b902d78b1d18adfc7b7df40da8a343f0..71ee9f1a5452740f3f585df1d81048b04d8a72b1 100644 (file)
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with the GNU C Library; if not, see
- * <http://www.gnu.org/licenses/>.  
+ * <http://www.gnu.org/licenses/>.
  */
 
 /* adapted for Quagga from glibc patch submission originally from
  * Florian Weimer <fweimer@redhat.com>, 2016-05-18 */
 
-#include <string.h>
-
+#ifdef HAVE_CONFIG_H
 #include "config.h"
+#endif
+
+#include <string.h>
 
 #ifndef HAVE_STRLCPY
 #undef strlcpy
 
-size_t
-strlcpy (char *__restrict dest, const char *__restrict src, size_t size);
+size_t strlcpy(char *__restrict dest,
+              const char *__restrict src, size_t destsize);
 
-size_t
-strlcpy (char *__restrict dest, const char *__restrict src, size_t size)
+size_t strlcpy(char *__restrict dest,
+              const char *__restrict src, size_t destsize)
 {
-  size_t src_length = strlen (src);
+       size_t src_length = strlen(src);
 
-  if (__builtin_expect (src_length >= size, 0))
-    {
-      if (size > 0)
-       {
-         /* Copy the leading portion of the string.  The last
-            character is subsequently overwritten with the NUL
-            terminator, but the destination size is usually a
-            multiple of a small power of two, so writing it twice
-            should be more efficient than copying an odd number of
-            bytes.  */
-         memcpy (dest, src, size);
-         dest[size - 1] = '\0';
-       }
-    }
-  else
-      /* Copy the string and its terminating NUL character.  */
-      memcpy (dest, src, src_length + 1);
-  return src_length;
+       if (__builtin_expect(src_length >= destsize, 0)) {
+               if (destsize > 0) {
+                       /*
+                        * Copy the leading portion of the string.  The last
+                        * character is subsequently overwritten with the NUL
+                        * terminator, but the destination destsize is usually
+                        * a multiple of a small power of two, so writing it
+                        * twice should be more efficient than copying an odd
+                        * number of bytes.
+                        */
+                       memcpy(dest, src, destsize);
+                       dest[destsize - 1] = '\0';
+               }
+       } else
+               /* Copy the string and its terminating NUL character.  */
+               memcpy(dest, src, src_length + 1);
+       return src_length;
 }
 #endif /* HAVE_STRLCPY */