e_info_client: fix wrong result of string comparison.
authorSeunghun Lee <shiin.lee@samsung.com>
Fri, 31 Jan 2020 06:15:59 +0000 (15:15 +0900)
committerGwanglim Lee <gl77.lee@samsung.com>
Thu, 6 Feb 2020 05:48:58 +0000 (14:48 +0900)
Change-Id: I9653d150fb98780e6be02be5f78ca092e6cb7451

src/bin/e_info_client.c

index 114fbb6737a732f37f3761ababcbdd5586da1581..4c1838c0bd10d4469288bc87748593f619059cef 100644 (file)
@@ -5950,10 +5950,14 @@ _e_info_client_print_usage(int argc, char **argv)
 {
    Eina_List *l = NULL;
    ProcInfo  *procinfo = NULL;
+   int arglen, optlen;
 
+   arglen = strlen(argv[1]+1);
    EINA_LIST_FOREACH(list_tracelogs, l, procinfo)
      {
-        if (!strncmp(argv[1]+1, procinfo->option, strlen(procinfo->option)))
+        optlen = strlen(procinfo->option);
+        if (arglen != optlen) continue;
+        if (!strncmp(argv[1]+1, procinfo->option, optlen))
           {
              printf("  %s\n\n", (procinfo->description)?procinfo->description:"");
              printf("  %s -%s %s\n", argv[0], procinfo->option, (procinfo->params)?procinfo->params:"");
@@ -5963,7 +5967,9 @@ _e_info_client_print_usage(int argc, char **argv)
 
    EINA_LIST_FOREACH(list_printinfo, l, procinfo)
      {
-        if (!strncmp(argv[1]+1, procinfo->option, strlen(procinfo->option)))
+        optlen = strlen(procinfo->option);
+        if (arglen != optlen) continue;
+        if (!strncmp(argv[1]+1, procinfo->option, optlen))
           {
              printf("  %s\n\n", (procinfo->description)?procinfo->description:"");
              printf("  %s -%s %s\n", argv[0], procinfo->option, (procinfo->params)?procinfo->params:"");
@@ -5973,7 +5979,9 @@ _e_info_client_print_usage(int argc, char **argv)
 
    EINA_LIST_FOREACH(list_exec, l, procinfo)
      {
-        if (!strncmp(argv[1]+1, procinfo->option, strlen(procinfo->option)))
+        optlen = strlen(procinfo->option);
+        if (arglen != optlen) continue;
+        if (!strncmp(argv[1]+1, procinfo->option, optlen))
           {
              printf("  %s\n\n", (procinfo->description)?procinfo->description:"");
              printf("  %s -%s %s\n", argv[0], procinfo->option, (procinfo->params)?procinfo->params:"");