API: More gracefully fail when opening shared memory segment fails.

API clients would fail with an ASSERT (and core dump) whenever
the API shared memory segment could not be opened.
This returns an error value to the client's connect instead.

Change-Id: Id122a3a090b24b139c382ae09f341bde61fd2540
Signed-off-by: Ole Troan <ot@cisco.com>
diff --git a/src/vlibmemory/memory_shared.c b/src/vlibmemory/memory_shared.c
index 9bab657..fbdabd0 100644
--- a/src/vlibmemory/memory_shared.c
+++ b/src/vlibmemory/memory_shared.c
@@ -337,7 +337,7 @@
   void *oldheap;
   vl_shmem_hdr_t *shmem_hdr = 0;
   api_main_t *am = &api_main;
-  int i;
+  int i, rv;
   struct timespec ts, tsrem;
   u32 vlib_input_queue_length;
 
@@ -352,7 +352,11 @@
     }
 
   if (is_vlib == 0)
-    svm_region_init_chroot (am->root_path);
+    {
+      rv = svm_region_init_chroot (am->root_path);
+      if (rv)
+	return rv;
+    }
 
   if (a->root_path != NULL)
     {