lots of changes
diff --git a/objects/flash_bios_obj.c b/objects/flash_bios_obj.c
index 928d11b..ebc71aa 100644
--- a/objects/flash_bios_obj.c
+++ b/objects/flash_bios_obj.c
@@ -24,10 +24,10 @@
 		const gchar* name = flash_get_flasher_name(flash);

 		const gchar* inst = flash_get_flasher_instance(flash);

 		const gchar* filename = flash_get_filename(flash);

-

 		status = execl(path, name, inst, filename, NULL);

+		return status;

 	}

-	return status;

+	return 0;

 }

 

 static gboolean

@@ -53,9 +53,18 @@
 		gchar*                  name,

                 gpointer                user_data)

 {

-	printf("Locking BIOS Flash: %s\n",name);

-	shared_resource_set_lock(lock,true);

-	shared_resource_set_name(lock,name);

+	gboolean locked = shared_resource_get_lock(lock);

+	if (locked)

+	{

+		const gchar* name = shared_resource_get_name(lock);

+		printf("ERROR: BIOS Flash is already locked: %s\n",name);

+	}

+	else

+	{	

+		printf("Locking BIOS Flash: %s\n",name);

+		shared_resource_set_lock(lock,true);

+		shared_resource_set_name(lock,name);

+	}

 	shared_resource_complete_lock(lock,invocation);

 	return TRUE;

 }

@@ -347,7 +356,7 @@
                                    object,

                                    NULL );

 		g_free(s);

-		s = g_strdup_printf ("/org/openbmc/control/%s\0",cmd->argv[i]);

+		s = g_strdup_printf ("/org/openbmc/control/%s",cmd->argv[i]);

 		g_dbus_connection_signal_subscribe(connection,

                                    NULL,

                                    "org.openbmc.FlashControl",