SDB: Fix install bug 73/12473/2
authorho.namkoong <ho.namkoong@samsung.com>
Fri, 15 Nov 2013 10:12:31 +0000 (19:12 +0900)
committerho.namkoong <ho.namkoong@samsung.com>
Fri, 15 Nov 2013 10:15:38 +0000 (19:15 +0900)
Fix bug: SDB client dies when pkg file has wrong format

Change-Id: Ibad0f079cb534ba10f35753fa2c4f7c3d190b15c

src/command_function.c

index 51815eff7cff28e69a2e9f1b9e4fc80fbeb7b838..0d5f994b81b9a680dee34a9e6dbd39d3b61d576d 100644 (file)
@@ -555,14 +555,12 @@ int install(int argc, char **argv, void** extargv) {
     D("Install path%s\n", destination);
     int tpk = get_pkgtype_file_name(srcpath);
     if (tpk == -1) {
-        fprintf(stderr, "error: unknown package type\n");
+        fprintf(stderr, "error: unknown package type '%s'\n", srcpath);
         return 1;
     }
 
     D("Push file: %s to %s\n", srcpath, destination);
-    int result = do_sync_copy(srcpath, destination, (FILE_FUNC*)&LOCAL_FILE_FUNC, (FILE_FUNC*)&REMOTE_FILE_FUNC, 0, extargv);
-
-    if(result < 0) {
+    if(do_sync_copy(srcpath, destination, (FILE_FUNC*)&LOCAL_FILE_FUNC, (FILE_FUNC*)&REMOTE_FILE_FUNC, 0, extargv)) {
         return 1;
     }
 
@@ -577,18 +575,14 @@ int install(int argc, char **argv, void** extargv) {
     }
 
     D(COMMANDLINE_MSG_FULL_CMD, argv[0], full_cmd);
-    result = __sdb_command(full_cmd, extargv);
-
-    if(result < 0) {
+    if(__sdb_command(full_cmd, extargv) < 0) {
         return 1;
     }
 
     const char* SHELL_REMOVE_CMD = "shell:rm %s";
     snprintf(full_cmd, sizeof full_cmd, SHELL_REMOVE_CMD, destination);
     D(COMMANDLINE_MSG_FULL_CMD, "remove", full_cmd);
-    result = __sdb_command(full_cmd, extargv);
-
-    if(result < 0) {
+    if(__sdb_command(full_cmd, extargv) < 0) {
         return 1;
     }
 
@@ -627,8 +621,9 @@ static int get_pkgtype_file_name(const char* file_name) {
 
     int result = -1;
 
-    pkg_type = strrchr(file_name, '.')+1;
+    pkg_type = strrchr(file_name, '.');
     if (pkg_type != NULL) {
+        pkg_type++;
         if(!strcmp(pkg_type, "wgt")) {
             result = 0;
         }