l2: Separating scan-delay and learn-limit into a separate API from want_l2_macs_events
[vpp.git] / src / vcl / ldp_socket_wrapper.c
index 9811258..2538471 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016 Cisco and/or its affiliates.
+ * Copyright (c) 2016-2019 Cisco and/or its affiliates.
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at:
@@ -173,6 +173,9 @@ typedef int (*__libc_dup2) (int oldfd, int newfd);
 #endif
 
 typedef int (*__libc_fcntl) (int fd, int cmd, ...);
+#ifdef HAVE_FCNTL64
+typedef int (*__libc_fcntl64) (int fd, int cmd, ...);
+#endif
 typedef FILE *(*__libc_fopen) (const char *name, const char *mode);
 #ifdef HAVE_FOPEN64
 typedef FILE *(*__libc_fopen64) (const char *name, const char *mode);
@@ -292,6 +295,9 @@ struct swrap_libc_symbols
   SWRAP_SYMBOL_ENTRY (dup2);
 #endif
   SWRAP_SYMBOL_ENTRY (fcntl);
+#ifdef HAVE_FCNTL64
+  SWRAP_SYMBOL_ENTRY (fcntl64);
+#endif
   SWRAP_SYMBOL_ENTRY (fopen);
 #ifdef HAVE_FOPEN64
   SWRAP_SYMBOL_ENTRY (fopen64);
@@ -388,7 +394,7 @@ swrap_load_lib_handle (enum swrap_lib lib)
   void *handle = NULL;
   int i;
 
-#ifdef RTLD_DEEPBIND
+#if defined(RTLD_DEEPBIND) && !defined(CLIB_SANITIZE_ADDR)
   flags |= RTLD_DEEPBIND;
 #endif
 
@@ -541,28 +547,23 @@ libc_eventfd (int count, int flags)
 }
 #endif
 
-DO_NOT_SANITIZE_ADDRESS_ATTRIBUTE int
+int
 libc_vfcntl (int fd, int cmd, va_list ap)
 {
-  long int args[4];
-  int rc;
-  int i;
-
   swrap_bind_symbol_libc (fcntl);
+  return swrap.libc.symbols._libc_fcntl.f (fd, cmd, va_arg (ap, long int));
+}
 
-  for (i = 0; i < 4; i++)
-    {
-      args[i] = va_arg (ap, long int);
-    }
-
-  rc = swrap.libc.symbols._libc_fcntl.f (fd,
-                                        cmd,
-                                        args[0], args[1], args[2], args[3]);
-
-  return rc;
+#ifdef HAVE_FCNTL64
+int
+libc_vfcntl64 (int fd, int cmd, va_list ap)
+{
+  swrap_bind_symbol_libc (fcntl64);
+  return swrap.libc.symbols._libc_fcntl64.f (fd, cmd, va_arg (ap, long int));
 }
+#endif
 
-DO_NOT_SANITIZE_ADDRESS_ATTRIBUTE int
+int
 libc_vioctl (int fd, int cmd, va_list ap)
 {
   long int args[4];