[Initng-svn] r2386 - in initng: plugins/also plugins/bash_launcher plugins/chdir plugins/chroot plugins/depend plugins/envparser plugins/fstat plugins/pidfile plugins/simple_launcher plugins/stdout plugins/suid plugins/syncron src

svn at initng.thinktux.net svn at initng.thinktux.net
Mon Dec 12 12:36:42 CET 2005


Author: jimmy
Date: Mon Dec 12 12:36:40 2005
New Revision: 2386

Modified:
   initng/plugins/also/initng_also.c
   initng/plugins/bash_launcher/initng_bash_launcher.c
   initng/plugins/chdir/initng_chdir.c
   initng/plugins/chroot/initng_chroot.c
   initng/plugins/depend/initng_depend.c
   initng/plugins/envparser/initng_envparser.c
   initng/plugins/fstat/initng_fstat.c
   initng/plugins/pidfile/initng_pidfile.c
   initng/plugins/simple_launcher/initng_simple_launcher.c
   initng/plugins/stdout/initng_stdout.c
   initng/plugins/suid/initng_suid.c
   initng/plugins/syncron/initng_syncron.c
   initng/src/initng_active_db.c
   initng/src/initng_active_db.h
   initng/src/initng_env_variable.c
   initng/src/initng_env_variable.h
   initng/src/initng_service_cache.c
   initng/src/initng_service_cache.h
   initng/src/initng_struct_data.c
   initng/src/initng_struct_data.h
Log:
Moved a lot of "char *" to "const char *" to make it more failsafe.



Modified: initng/plugins/also/initng_also.c
==============================================================================
--- initng/plugins/also/initng_also.c	(original)
+++ initng/plugins/also/initng_also.c	Mon Dec 12 12:36:40 2005
@@ -44,7 +44,7 @@
 
 int service_state(active_h * service)
 {
-    char *tmp = NULL;
+    const char *tmp = NULL;
     active_h *current = NULL;
 
     assert(service);

Modified: initng/plugins/bash_launcher/initng_bash_launcher.c
==============================================================================
--- initng/plugins/bash_launcher/initng_bash_launcher.c	(original)
+++ initng/plugins/bash_launcher/initng_bash_launcher.c	Mon Dec 12 12:36:40 2005
@@ -60,15 +60,15 @@
     "The options bash shuld get."
 };
 
-static void bash_this(char *bash_code, active_h * s, char *args);
+static void bash_this(const char *bash_code, active_h * s, const char *args);
 static int bash_exec(process_h * process_to_exec, active_h * s,
-                     char *script, char *args);
+                     const char *script, const char *args);
 
 
 static int initng_bash(active_h * service, process_h * process)
 {
-    char *e = NULL;
-    char *args = NULL;
+    const char *e = NULL;
+    const char *args = NULL;
 
     assert(service);
     assert(service->name);
@@ -84,7 +84,7 @@
 }
 
 
-static void bash_this(char *bash_code, active_h * s, char *args)
+static void bash_this(const char *bash_code, active_h * s, const char *args)
 {
     D_("bash_this(%s);\n", s->name);
     /* Todo : move bash_this into initng_bash_launcher and parse args properly\n" */
@@ -96,9 +96,9 @@
     strcat(argtmp[0], s->name);
     strcat(argtmp[0], "]");
     argtmp[1] = i_strdup("-c");
-    argtmp[2] = bash_code;
+    argtmp[2] = i_strdup(bash_code);
     argtmp[3] = s->name;
-    argtmp[4] = args;
+    argtmp[4] = i_strdup(args);
     argtmp[5] = NULL;
     execve("/bin/sh", argtmp, new_environ(s));
     free(argtmp[0]);
@@ -112,7 +112,7 @@
 
 
 static int bash_exec(process_h * process_to_exec, active_h * s,
-                     char *script, char *args)
+                     const char *script, const char *args)
 {
 
     /* called from inside the service directory, return the PID or 0 on error */

Modified: initng/plugins/chdir/initng_chdir.c
==============================================================================
--- initng/plugins/chdir/initng_chdir.c	(original)
+++ initng/plugins/chdir/initng_chdir.c	Mon Dec 12 12:36:40 2005
@@ -38,7 +38,7 @@
 };
 int do_chdir(active_h * s, process_h * p __attribute__ ((unused)))
 {
-    char *tmp = NULL;
+    const char *tmp = NULL;
 
     assert(s);
     assert(s->name);

Modified: initng/plugins/chroot/initng_chroot.c
==============================================================================
--- initng/plugins/chroot/initng_chroot.c	(original)
+++ initng/plugins/chroot/initng_chroot.c	Mon Dec 12 12:36:40 2005
@@ -39,7 +39,7 @@
 
 int do_chroot(active_h * s, process_h * p __attribute__ ((unused)))
 {
-    char *tmp = NULL;
+    const char *tmp = NULL;
 
     assert(s);
     assert(s->name);

Modified: initng/plugins/depend/initng_depend.c
==============================================================================
--- initng/plugins/depend/initng_depend.c	(original)
+++ initng/plugins/depend/initng_depend.c	Mon Dec 12 12:36:40 2005
@@ -38,7 +38,7 @@
 /* standard dep check */
 static int dep_on(active_h * service, active_h * check)
 {
-    char *string = NULL;
+    const char *string = NULL;
 
     assert(service);
     assert(check);
@@ -66,7 +66,7 @@
 
 int service_state(active_h * service)
 {
-    char *tmp = NULL;
+    const char *tmp = NULL;
 
     assert(service);
     assert(service->name);

Modified: initng/plugins/envparser/initng_envparser.c
==============================================================================
--- initng/plugins/envparser/initng_envparser.c	(original)
+++ initng/plugins/envparser/initng_envparser.c	Mon Dec 12 12:36:40 2005
@@ -42,12 +42,12 @@
     "Same as env_file, but service will file if the file dont exits."
 };
 
-static int parse_file(char *file, service_h * s);
+static int parse_file(const char *file, service_h * s);
 
 /* Parse all the env_file's when service finished loading */
 static int env_parser(service_h * s)
 {
-    char *file = NULL;
+    const char *file = NULL;
 
     assert(s);
 
@@ -71,7 +71,7 @@
     return (TRUE);
 }
 
-static int parse_file(char *file, service_h * s)
+static int parse_file(const char *file, service_h * s)
 {
     int i = 0;
     int j = 0;

Modified: initng/plugins/fstat/initng_fstat.c
==============================================================================
--- initng/plugins/fstat/initng_fstat.c	(original)
+++ initng/plugins/fstat/initng_fstat.c	Mon Dec 12 12:36:40 2005
@@ -46,7 +46,7 @@
 /* returns TRUE if all use deps are started */
 static int check_files_to_exist(active_h * service, a_state_h * status)
 {
-    char *file = NULL;
+    const char *file = NULL;
     struct stat file_stat;
 
     S_;

Modified: initng/plugins/pidfile/initng_pidfile.c
==============================================================================
--- initng/plugins/pidfile/initng_pidfile.c	(original)
+++ initng/plugins/pidfile/initng_pidfile.c	Mon Dec 12 12:36:40 2005
@@ -203,19 +203,20 @@
 static pid_t get_pidof(active_h * s)
 {
     pid_t pid;
-    char *pidof;
+    const char *pidof;
+    char *pidof_fixed = NULL;
 
     pidof = active_db_get_string(&PIDOF, s);
     if (!pidof)
         return (-1);
 
 
-    pidof = fix_variables(pidof, s);
-    if (!pidof)
+    pidof_fixed = fix_variables(pidof, s);
+    if (!pidof_fixed)
         return (-1);
 
-    pid = pid_of(pidof);
-    free(pidof);
+    pid = pid_of(pidof_fixed);
+    free(pidof_fixed);
     return (pid);
 }
 
@@ -223,7 +224,8 @@
 static pid_t get_pidfile(active_h * s)
 {
     pid_t pid;
-    char *pidfile;
+    const char *pidfile = NULL;
+    char *pidfile_fixed = NULL;
 
     /* get the pidfile */
     pidfile = active_db_get_string(&PIDFILE, s);
@@ -233,15 +235,15 @@
         return (-1);
 
     /* fix the variables in the string */
-    pidfile = fix_variables(pidfile, s);
+    pidfile_fixed = fix_variables(pidfile, s);
 
     /* check so we got the string */
-    if (!pidfile)
+    if (!pidfile_fixed)
         return (-1);
 
     /* get the pid from the file */
-    pid = pid_from_file(pidfile);
-    free(pidfile);
+    pid = pid_from_file(pidfile_fixed);
+    free(pidfile_fixed);
 
     /* return the pid */
     return (pid);

Modified: initng/plugins/simple_launcher/initng_simple_launcher.c
==============================================================================
--- initng/plugins/simple_launcher/initng_simple_launcher.c	(original)
+++ initng/plugins/simple_launcher/initng_simple_launcher.c	Mon Dec 12 12:36:40 2005
@@ -163,7 +163,7 @@
 
 static int initng_s_launch(active_h * service, process_h * process)
 {
-    char *exec = NULL;
+    const char *exec = NULL;
 
     assert(service);
     assert(service->name);
@@ -172,7 +172,7 @@
     while ((exec =
             active_db_get_string_var(&EXEC, process->pt->name, service)))
     {
-        char *exec_args = NULL;
+        const char *exec_args = NULL;
         char *exec_t = NULL, *exec_args_t = NULL;
         size_t exec_c = 0;
         size_t exec_args_c = 0;

Modified: initng/plugins/stdout/initng_stdout.c
==============================================================================
--- initng/plugins/stdout/initng_stdout.c	(original)
+++ initng/plugins/stdout/initng_stdout.c	Mon Dec 12 12:36:40 2005
@@ -54,10 +54,10 @@
 {
 
     /* string containing the filename of output */
-    char *s_stdout = NULL;
-    char *s_stderr = NULL;
-    char *s_stdall = NULL;
-    char *s_stdin = NULL;
+    const char *s_stdout = NULL;
+    const char *s_stderr = NULL;
+    const char *s_stdall = NULL;
+    const char *s_stdin = NULL;
 
     /* filedescriptors */
     int fd_stdout = -1;

Modified: initng/plugins/suid/initng_suid.c
==============================================================================
--- initng/plugins/suid/initng_suid.c	(original)
+++ initng/plugins/suid/initng_suid.c	Mon Dec 12 12:36:40 2005
@@ -38,7 +38,7 @@
 s_entry SGID = { "sgid", STRING, 4, NULL, "Set this group id on launch." };
 int do_suid(active_h * s, process_h * p __attribute__ ((unused)))
 {
-    char *tmp = NULL;
+    const char *tmp = NULL;
     int ret = TRUE;
 
     assert(s);

Modified: initng/plugins/syncron/initng_syncron.c
==============================================================================
--- initng/plugins/syncron/initng_syncron.c	(original)
+++ initng/plugins/syncron/initng_syncron.c	Mon Dec 12 12:36:40 2005
@@ -43,8 +43,8 @@
 static int check_syncronicly_service(active_h * service, a_state_h * status)
 {
     active_h *current, *q = NULL;
-    char *service_syncron;
-    char *current_syncron;
+    const char *service_syncron;
+    const char *current_syncron;
 
     assert(service);
     assert(service->name);

Modified: initng/src/initng_active_db.c
==============================================================================
--- initng/src/initng_active_db.c	(original)
+++ initng/src/initng_active_db.c	Mon Dec 12 12:36:40 2005
@@ -577,10 +577,10 @@
 
 
 /* ########     Data handlers  ############## */
-char *active_db_get_string_var(s_entry * type, const char *vn,
+const char *active_db_get_string_var(s_entry * type, const char *vn,
                                active_h * from_active)
 {
-    char *t = NULL;
+    const char *t = NULL;
 
     assert(from_active);
 
@@ -616,10 +616,10 @@
     return (0);
 }
 
-char *active_db_get_next_string_var(s_entry * type, const char *vn,
-                                    active_h * from_active, char *last)
+const char *active_db_get_next_string_var(s_entry * type, const char *vn,
+                                    active_h * from_active, const char *last)
 {
-    char *r = NULL;
+    const char *r = NULL;
 
     assert(from_active);
 

Modified: initng/src/initng_active_db.h
==============================================================================
--- initng/src/initng_active_db.h	(original)
+++ initng/src/initng_active_db.h	Mon Dec 12 12:36:40 2005
@@ -101,10 +101,10 @@
 #define active_db_is(t,a) active_db_is_var(t, NULL, a)
 int active_db_get_int_var(s_entry * type, const char *vn,
                           active_h * from_active);
-char *active_db_get_string_var(s_entry * type, const char *vn,
+const char *active_db_get_string_var(s_entry * type, const char *vn,
                                active_h * from_active);
-char *active_db_get_next_string_var(s_entry * type, const char *vn,
-                                    active_h * from_active, char *last);
+const char *active_db_get_next_string_var(s_entry * type, const char *vn,
+                                    active_h * from_active, const char *last);
 int active_db_is_var(s_entry * type, const char *vn, active_h * from_active);
 
 /* count the total number of this type */

Modified: initng/src/initng_env_variable.c
==============================================================================
--- initng/src/initng_env_variable.c	(original)
+++ initng/src/initng_env_variable.c	Mon Dec 12 12:36:40 2005
@@ -181,12 +181,11 @@
 
         env[nr] = NULL;
         /* insert all env strings from config */
-        if ((env[nr] = active_db_get_next_string(&ENV, s, NULL)))
+        if ((env[nr] = (char *)active_db_get_next_string(&ENV, s, NULL)))
         {
             nr++;
             while (((nr + 1) < allocate) &&
-                   (env[nr] =
-                    active_db_get_next_string(&ENV, s, env[nr - 1])))
+                   (env[nr] = (char *)active_db_get_next_string(&ENV, s, env[nr - 1])))
                 nr++;
 
         }
@@ -226,7 +225,7 @@
  * This function will change variables in from, like $NAME, $SERVICE, $CLASS
  * into its right content, and return a new allocated string with the result.
  */
-char *fix_variables(char *from, active_h * s)
+char *fix_variables(const char *from, active_h * s)
 {
     char *to;                   /* this is the pointer we are going to return */
     char *set;                  /* pointer to step */
@@ -342,7 +341,7 @@
 
         /* get variable from ENV type */
 	{
-    	char *tmp = NULL;
+    	const char *tmp = NULL;
         while ((tmp = active_db_get_next_string(&ENV, s, tmp)))
         {
             if (strncasecmp(from, tmp, len) == 0 && tmp[len] == '=')
@@ -382,14 +381,14 @@
                         }
                     case STRINGS:
                         {
-                            tmp = NULL;
-                            while ((tmp =
-                                    active_db_get_next_string(entry, s, tmp)))
+                            const char *tmp2 = NULL;
+                            while ((tmp2 =
+                                    active_db_get_next_string(entry, s, tmp2)))
                             {
-                                strcat(set, tmp);
+                                strcat(set, tmp2);
                                 strcat(set, " ");
                             }
-                            if (tmp)
+                            if (tmp2)
                                 goto go_forward;
                         }
                         /* if it is an integer, sprintf in it */

Modified: initng/src/initng_env_variable.h
==============================================================================
--- initng/src/initng_env_variable.h	(original)
+++ initng/src/initng_env_variable.h	Mon Dec 12 12:36:40 2005
@@ -25,7 +25,7 @@
 #include "initng_active_db.h"
 extern const char *initng_environ[];
 
-char *fix_variables(char *from, active_h * s);
+char *fix_variables(const char *from, active_h * s);
 char **new_environ(active_h * s);
 void free_environ(char **tf);
 

Modified: initng/src/initng_service_cache.c
==============================================================================
--- initng/src/initng_service_cache.c	(original)
+++ initng/src/initng_service_cache.c	Mon Dec 12 12:36:40 2005
@@ -355,9 +355,9 @@
  * service_db_get_string(), look in the service_h->data entry, but also
  * checks fathers->data, that will also apply for this service.
  */
-char *service_db_get_string_var(s_entry * type, const char *vn, service_h * s)
+const char *service_db_get_string_var(s_entry * type, const char *vn, service_h * s)
 {
-    char *tmp = NULL;
+    const char *tmp = NULL;
 
     assert(type);
     assert(s);
@@ -396,10 +396,10 @@
  * service_db_get_next_string(), look in the service_h->data entry, but also
  * checks fathers->data, that will also apply for this service.
  */
-char *service_db_get_next_string_var(s_entry * type, const char *vn,
-                                     service_h * s, char *last)
+const char *service_db_get_next_string_var(s_entry * type, const char *vn,
+                                     service_h * s, const char *last)
 {
-    char *tmp = NULL;
+    const char *tmp = NULL;
 
     assert(type);
     assert(s);

Modified: initng/src/initng_service_cache.h
==============================================================================
--- initng/src/initng_service_cache.h	(original)
+++ initng/src/initng_service_cache.h	Mon Dec 12 12:36:40 2005
@@ -88,11 +88,11 @@
 
 /* variable */
 int service_db_is_var(s_entry * type, const char *vn, service_h * s);
-char *service_db_get_string_var(s_entry * type, const char *vn,
+const char *service_db_get_string_var(s_entry * type, const char *vn,
                                 service_h * s);
 int service_db_get_int_var(s_entry * type, const char *vn, service_h * s);
-char *service_db_get_next_string_var(s_entry * type, const char *vn,
-                                     service_h * s, char *last);
+const char *service_db_get_next_string_var(s_entry * type, const char *vn,
+                                     service_h * s, const char *last);
 
 #define service_db_set_string_var(type, vn, from_service, string)  d_set_string_var(type, vn, &from_service->data.list, string)
 #define service_db_set_another_string_var(type, vn, from_service, string) d_set_another_string_var(type, vn, &from_service->data.list, string)

Modified: initng/src/initng_struct_data.c
==============================================================================
--- initng/src/initng_struct_data.c	(original)
+++ initng/src/initng_struct_data.c	Mon Dec 12 12:36:40 2005
@@ -56,7 +56,7 @@
 #define IT(x) (type->opt_type == x || type->opt_type == (x + 50))
 
 
-char *d_get_string_var(s_entry * type, const char *vn,
+const char *d_get_string_var(s_entry * type, const char *vn,
                        struct list_head *address)
 {
     s_data *current = NULL;
@@ -136,8 +136,8 @@
 }
 
 
-char *d_get_next_string_var(s_entry * type, const char *vn,
-                            struct list_head *d, char *last)
+const char *d_get_next_string_var(s_entry * type, const char *vn,
+                            struct list_head *d, const char *last)
 {
     s_data *current = NULL;
 
@@ -184,7 +184,7 @@
         }
 
         /* if this is last, return next string */
-        return (current->t.s);
+        return ((const char *)current->t.s);
     }
     /* no match */
     return (NULL);

Modified: initng/src/initng_struct_data.h
==============================================================================
--- initng/src/initng_struct_data.h	(original)
+++ initng/src/initng_struct_data.h	Mon Dec 12 12:36:40 2005
@@ -56,11 +56,11 @@
 int d_get_int_var(s_entry * type, const char *vn, struct list_head *d);
 
 #define d_get_string(t,d) d_get_string_var(t,NULL,d)
-char *d_get_string_var(s_entry * type, const char *vn, struct list_head *d);
+const char *d_get_string_var(s_entry * type, const char *vn, struct list_head *d);
 
 #define d_get_next_string(t,d,l) d_get_next_string_var(t,NULL,d,l)
-char *d_get_next_string_var(s_entry * type, const char *vn,
-                            struct list_head *d, char *last);
+const char *d_get_next_string_var(s_entry * type, const char *vn,
+                            struct list_head *d, const char *last);
 
 #define d_set(t,d) d_set_var(t, NULL, d)
 void d_set_var(s_entry * type, char *vn, struct list_head *d);


More information about the Initng-svn mailing list