diff --git a/src/vcl/vcom.c b/src/vcl/vcom.c
index 7c16311..7558e77 100644
--- a/src/vcl/vcom.c
+++ b/src/vcl/vcom.c
@@ -371,7 +371,7 @@
   const char *func_str;
   ssize_t size = 0;
   u32 sid = vcom_sid_from_fd (fd);
-  int rv, i, total = 0;
+  int rv = 0, i, total = 0;
 
   if ((errno = -vcom_init ()))
     return -1;
@@ -508,7 +508,7 @@
   const char *func_str;
   ssize_t size = 0, total = 0;
   u32 sid = vcom_sid_from_fd (fd);
-  int rv, i;
+  int i, rv = 0;
 
   /*
    * Use [f]printf() instead of clib_warning() to prevent recursion SIGSEGV.
@@ -1219,6 +1219,8 @@
   if (((domain == AF_INET) || (domain == AF_INET6)) &&
       ((sock_type == SOCK_STREAM) || (sock_type == SOCK_DGRAM)))
     {
+      func_str = __func__;
+
       clib_warning ("LDP<%d>: LDP-TBD", getpid ());
       errno = ENOSYS;
       rv = -1;
@@ -2175,6 +2177,8 @@
 
   if (sid != INVALID_SESSION_ID)
     {
+      func_str = __func__;
+
       clib_warning ("LDP<%d>: LDP-TBD", getpid ());
       errno = ENOSYS;
       size = -1;
@@ -2269,6 +2273,8 @@
 
   if (sid != INVALID_SESSION_ID)
     {
+      func_str = __func__;
+
       clib_warning ("LDP<%d>: LDP-TBD", getpid ());
       errno = ENOSYS;
       size = -1;
@@ -2360,7 +2366,7 @@
   int rv;
   const char *func_str = __func__;
   u32 sid = vcom_sid_from_fd (fd);
-  u32 buflen = (u32) * optlen;
+  u32 buflen = optlen ? (u32) * optlen : 0;
 
   if ((errno = -vcom_init ()))
     return -1;
@@ -2818,6 +2824,7 @@
     {
       vppcom_endpt_t ep;
       u8 src_addr[sizeof (struct sockaddr_in6)];
+      memset (&ep, 0, sizeof (ep));
       ep.ip = src_addr;
 
       func_str = "vppcom_session_accept";
@@ -2917,6 +2924,8 @@
 
   if (sid != INVALID_SESSION_ID)
     {
+      func_str = __func__;
+
       clib_warning ("LDP<%d>: LDP-TBD", getpid ());
       errno = ENOSYS;
       rv = -1;
@@ -3107,7 +3116,7 @@
 		  int maxevents, int timeout, const sigset_t * sigmask)
 {
   const char *func_str;
-  int rv;
+  int rv = 0;
   double time_to_wait = (double) 0;
   double time_out, now = 0;
   u32 vep_idx = vcom_sid_from_fd (epfd);
