vcl: fix ldp for __recv_chk socket calls
[vpp.git] / src / vcl / ldp.c
index 316d97d..de886ca 100644 (file)
@@ -1530,6 +1530,15 @@ recv (int fd, void *buf, size_t n, int flags)
   return size;
 }
 
+ssize_t
+__recv_chk (int fd, void *buf, size_t n, size_t buflen, int flags)
+{
+  if (n > buflen)
+    return -1;
+
+  return recv (fd, buf, n, flags);
+}
+
 static int
 ldp_vls_sendo (vls_handle_t vlsh, const void *buf, size_t n, int flags,
               __CONST_SOCKADDR_ARG addr, socklen_t addr_len)
@@ -1603,7 +1612,7 @@ sendto (int fd, const void *buf, size_t n, int flags,
   ldp_init_check ();
 
   vlsh = ldp_fd_to_vlsh (fd);
-  if (vlsh != INVALID_SESSION_ID)
+  if (vlsh != VLS_INVALID_HANDLE)
     {
       size = ldp_vls_sendo (vlsh, buf, n, flags, addr, addr_len);
       if (size < 0)
@@ -1702,7 +1711,7 @@ sendmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags)
 
   ldp_init_check ();
 
-  if (sh != INVALID_SESSION_ID)
+  if (sh != VLS_INVALID_HANDLE)
     {
       clib_warning ("LDP<%d>: LDP-TBD", getpid ());
       errno = ENOSYS;
@@ -1802,7 +1811,7 @@ recvmmsg (int fd, struct mmsghdr *vmessages,
 
   ldp_init_check ();
 
-  if (sh != INVALID_SESSION_ID)
+  if (sh != VLS_INVALID_HANDLE)
     {
       clib_warning ("LDP<%d>: LDP-TBD", getpid ());
       errno = ENOSYS;