The subject is sufficiently descriptive ;).
Index: runiscript.c
===================================================================
--- runiscript.c        (revisión: 4826)
+++ runiscript.c        (copia de trabajo)
@@ -125,14 +125,14 @@
                        if (strcmp(argv[2], ngc_args[i]) == 0)
                        {
                                /* set up an arg like "/sbin/ngc --start 
service" */
-                               new_argv[0] = strdup("/sbin/ngc");
+                               new_argv[0] = "/sbin/ngc";
                                /* put new_argv = "--start" */
                                new_argv[1] = calloc(strlen(ngc_args[i] + 4), 
sizeof(char));
                                new_argv[1][0] = '-';
                                new_argv[1][1] = '-';
                                strcat(new_argv[1], ngc_args[i]);
                                /* put service name */
-                               new_argv[2] = strdup(servname);
+                               new_argv[2] = servname;
                                new_argv[3] = NULL;
 
                                /* execute this call */
@@ -157,8 +157,7 @@
        }
 
        /* set up the bash script to run */
-       strcpy(script, "#/bin/bash\n");
-       strcat(script, &argv[2][9]);
+       strcpy(script, &argv[2][9]);
        strcat(script, "() {\necho \"ERROR: ");
        strcat(script, servname);
        strcat(script, " command ");
@@ -168,24 +167,22 @@
        strcat(script, path);
        strcat(script, "\n");
        strcat(script, &argv[2][9]);
-       strcat(script, "\nexit $?\n");
 
        /* set up new argv */
-       new_argv[0] = strdup("/bin/bash");
-       new_argv[1] = strdup("-c");
+       new_argv[0] = "/bin/sh";
+       new_argv[1] = "-c";
        new_argv[2] = script;
        new_argv[3] = NULL;
 
        /* set up the environments */
-       setenv("SERVICE_FILE", strdup(path), 1);
-       setenv("SERVICE", strdup(servname), 1);
-       setenv("COMMAND", strdup(argv[2]), 1);
-       setenv("THE_RIGHT_WAY", "TRUE", 1);
+       setenv("SERVICE_FILE", path, 1);
+       setenv("SERVICE", servname, 1);
+       setenv("COMMAND", argv[2], 1);
 
        /* now call the bash script */
        execve(new_argv[0], new_argv, environ);
 
        /* Newer get here */
-       printf("error exeuting /bin/bash.\n");
+       printf("error executing /bin/sh.\n");
        exit(3);
 }

Attachment: signature.asc
Description: OpenPGP digital signature

-- 
_______________________________________________
Initng mailing list
[email protected]
http://jw.dyndns.org/mailman/listinfo/initng

Reply via email to