server: Check return code for sd_bus_add_object_vtable()

Some combinations of the vtable flags can be erroneous. We need to check
the return value of sd_bus_add_object_vtable() in order to catch those.

Change-Id: I7eab7a021fdff3f94a7e450c4f55ba7c10b93c84
Signed-off-by: Waqar Hameed <waqarh@axis.com>
diff --git a/sdbusplus/server/interface.hpp b/sdbusplus/server/interface.hpp
index 36e89de..acf4a09 100644
--- a/sdbusplus/server/interface.hpp
+++ b/sdbusplus/server/interface.hpp
@@ -64,8 +64,12 @@
         _interface_added(false)
     {
         sd_bus_slot* slot = nullptr;
-        _intf->sd_bus_add_object_vtable(_bus.get(), &slot, _path.c_str(),
-                                        _interf.c_str(), vtable, context);
+        int r = _intf->sd_bus_add_object_vtable(
+            _bus.get(), &slot, _path.c_str(), _interf.c_str(), vtable, context);
+        if (r < 0)
+        {
+            throw exception::SdBusError(-r, "sd_bus_add_object_vtable");
+        }
 
         _slot = decltype(_slot){slot};
     }