/mandos/release

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/release

« back to all changes in this revision

Viewing changes to plugins.d/splashy.c

* README (The Plugin System): Removed redundant text about options and
                              files for the plugins, this is now
                              documented in the manuals for the
                              plugins.

* plugins.d/mandos-client.c (main): Remove comment which was copied
                                    from another program by mistake.
                                    Use "sscanf" instead of "strtol"
                                    to parse numbers; this uses the
                                    correct type instead of casting.
                                    Don't report errors when removing
                                    temporary directory if directory
                                    is already gone.

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
                                   SIG_IGN, kill(), SIGKILL */
31
31
#include <stddef.h>             /* NULL */
32
32
#include <stdlib.h>             /* getenv() */
33
 
#include <stdio.h>              /* asprintf(), perror(), sscanf() */
34
 
#include <stdlib.h>             /* EXIT_FAILURE, free(),
 
33
#include <stdio.h>              /* asprintf(), perror() */
 
34
#include <stdlib.h>             /* EXIT_FAILURE, free(), strtoul(),
35
35
                                   EXIT_SUCCESS */
36
36
#include <sys/types.h>          /* pid_t, DIR, struct dirent,
37
37
                                   ssize_t */
97
97
    for(struct dirent *proc_ent = readdir(proc_dir);
98
98
        proc_ent != NULL;
99
99
        proc_ent = readdir(proc_dir)){
100
 
      pid_t pid;
101
 
      /* In the GNU C library, pid_t is always int */
102
 
      ret = sscanf(proc_ent->d_name, "%d", &pid);
103
 
      if(ret != 1){ 
 
100
      pid_t pid = (pid_t) strtoul(proc_ent->d_name, NULL, 10);
 
101
      if(pid == 0){
104
102
        /* Not a process */
105
103
        continue;
106
104
      }
269
267
    /* Child; will become new splashy process */
270
268
    
271
269
    /* Make the effective user ID (root) the only user ID instead of
272
 
       the real user ID (_mandos) */
 
270
       the real user ID (mandos) */
273
271
    ret = setuid(geteuid());
274
272
    if(ret == -1){
275
273
      perror("setuid");