You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by bp...@apache.org on 2016/01/20 18:25:29 UTC

celix git commit: CELIX-341: fix possible dereferencing error

Repository: celix
Updated Branches:
  refs/heads/develop 79235f0cd -> fa4ee3c2a


CELIX-341: fix possible dereferencing error


Project: http://git-wip-us.apache.org/repos/asf/celix/repo
Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/fa4ee3c2
Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/fa4ee3c2
Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/fa4ee3c2

Branch: refs/heads/develop
Commit: fa4ee3c2a89711f83a7b6671bf577c5945ae8684
Parents: 79235f0
Author: Bjoern Petri <bp...@apache.org>
Authored: Wed Jan 20 18:25:04 2016 +0100
Committer: Bjoern Petri <bp...@apache.org>
Committed: Wed Jan 20 18:25:04 2016 +0100

----------------------------------------------------------------------
 shell/private/src/shell.c | 126 +++++++++++++++++++++--------------------
 1 file changed, 64 insertions(+), 62 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/celix/blob/fa4ee3c2/shell/private/src/shell.c
----------------------------------------------------------------------
diff --git a/shell/private/src/shell.c b/shell/private/src/shell.c
index fc673bd..c48c265 100644
--- a/shell/private/src/shell.c
+++ b/shell/private/src/shell.c
@@ -108,78 +108,80 @@ celix_status_t shell_destroy(shell_service_pt *shell_service_ptr) {
 }
 
 celix_status_t shell_addCommand(shell_pt shell_ptr, service_reference_pt reference_ptr) {
-	celix_status_t status = CELIX_SUCCESS;
-	command_service_pt command_ptr = NULL;
-	char *name_str = NULL;
-
-	if (!shell_ptr && !reference_ptr) {
-		status = CELIX_ILLEGAL_ARGUMENT;
-	}
-
-	if (status == CELIX_SUCCESS) {
-		status = bundleContext_getService(shell_ptr->bundle_context_ptr, reference_ptr, (void **) &command_ptr);
-		if (!command_ptr) {
-			status = CELIX_BUNDLE_EXCEPTION;
-		}
-	}
-
-	if (status == CELIX_SUCCESS) {
-		status = serviceReference_getProperty(reference_ptr, "command.name", &name_str);
-		if (!name_str) {
+    celix_status_t status = CELIX_SUCCESS;
+    command_service_pt command_ptr = NULL;
+    char *name_str = NULL;
+
+    if (!shell_ptr || !reference_ptr) {
+        status = CELIX_ILLEGAL_ARGUMENT;
+    }
+
+    if (status == CELIX_SUCCESS) {
+        status = bundleContext_getService(shell_ptr->bundle_context_ptr, reference_ptr, (void **) &command_ptr);
+        if (!command_ptr) {
+            status = CELIX_BUNDLE_EXCEPTION;
+        }
+    }
+
+    if (status == CELIX_SUCCESS) {
+        status = serviceReference_getProperty(reference_ptr, "command.name", &name_str);
+        if (!name_str) {
             logHelper_log(shell_ptr->logHelper, OSGI_LOGSERVICE_ERROR, "Command service must contain a 'command.name' property!");
-			status = CELIX_BUNDLE_EXCEPTION;
-		}
-	}
+            status = CELIX_BUNDLE_EXCEPTION;
+        }
+    }
 
-	if (status == CELIX_SUCCESS) {
-		hashMap_put(shell_ptr->command_name_map_ptr, name_str, command_ptr);
-		hashMap_put(shell_ptr->command_reference_map_ptr, reference_ptr, command_ptr);
-	}
+    if (status == CELIX_SUCCESS) {
+        hashMap_put(shell_ptr->command_name_map_ptr, name_str, command_ptr);
+        hashMap_put(shell_ptr->command_reference_map_ptr, reference_ptr, command_ptr);
+    }
 
-	if (status != CELIX_SUCCESS) {
-		shell_removeCommand(shell_ptr, reference_ptr);
+    if (status != CELIX_SUCCESS) {
+        shell_removeCommand(shell_ptr, reference_ptr);
         char err[32];
         celix_strerror(status, err, 32);
         logHelper_log(shell_ptr->logHelper, OSGI_LOGSERVICE_ERROR, "Could not add command, got error %s\n", err);
-	}
+    }
 
-	return status;
+    return status;
 }
 
 celix_status_t shell_removeCommand(shell_pt shell_ptr, service_reference_pt reference_ptr) {
-	celix_status_t status = CELIX_SUCCESS;
-
-	command_service_pt command_ptr = NULL;
-	char *name_str = NULL;
-
-	if (!shell_ptr || !reference_ptr) {
-		status = CELIX_ILLEGAL_ARGUMENT;
-	}
-
-	if (status == CELIX_SUCCESS) {
-		command_ptr = hashMap_remove(shell_ptr->command_reference_map_ptr, reference_ptr);
-		if (!command_ptr) {
-			status = CELIX_ILLEGAL_ARGUMENT;
-		}
-	}
-
-	if (status == CELIX_SUCCESS) {
-		status = serviceReference_getProperty(reference_ptr, "command.name", &name_str);
-		if (!name_str) {
-			status = CELIX_BUNDLE_EXCEPTION;
-		}
-	}
-
-	if (status == CELIX_SUCCESS) {
-		hashMap_remove(shell_ptr->command_name_map_ptr, name_str);
-	}
-
-	celix_status_t sub_status = bundleContext_ungetService(shell_ptr->bundle_context_ptr, reference_ptr, NULL);
-	if (sub_status != CELIX_SUCCESS && status == CELIX_SUCCESS) {
-		status = sub_status;
-	}
-
-	return status;
+    celix_status_t status = CELIX_SUCCESS;
+
+    command_service_pt command_ptr = NULL;
+    char *name_str = NULL;
+
+    if (!shell_ptr || !reference_ptr) {
+        status = CELIX_ILLEGAL_ARGUMENT;
+    }
+
+    if (status == CELIX_SUCCESS) {
+        command_ptr = hashMap_remove(shell_ptr->command_reference_map_ptr, reference_ptr);
+        if (!command_ptr) {
+            status = CELIX_ILLEGAL_ARGUMENT;
+        }
+    }
+
+    if (status == CELIX_SUCCESS) {
+        status = serviceReference_getProperty(reference_ptr, "command.name", &name_str);
+        if (!name_str) {
+            status = CELIX_BUNDLE_EXCEPTION;
+        }
+    }
+
+    if (status == CELIX_SUCCESS) {
+        hashMap_remove(shell_ptr->command_name_map_ptr, name_str);
+    }
+
+    if (status == CELIX_SUCCESS) {
+        celix_status_t sub_status = bundleContext_ungetService(shell_ptr->bundle_context_ptr, reference_ptr, NULL);
+        if (sub_status != CELIX_SUCCESS && status == CELIX_SUCCESS) {
+            status = sub_status;
+        }
+    }
+
+    return status;
 }
 
 celix_status_t shell_getCommands(shell_pt shell_ptr, array_list_pt *commands_ptr) {