/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 plugin-runner.c

merge + fallback bugg

Show diffs side-by-side

added added

removed removed

Lines of Context:
108
108
  char *copy_name = NULL;
109
109
  if(name != NULL){
110
110
    copy_name = strdup(name);
111
 
  }
112
 
  if(copy_name == NULL){
113
 
    return NULL;
 
111
    if(copy_name == NULL){
 
112
      return NULL;
 
113
    }
114
114
  }
115
115
  
116
116
  *new_plugin = (plugin) { .name = copy_name,
252
252
    return NULL;
253
253
  }
254
254
  argv[*argc-1] = arg;
255
 
  argv[*argc] = NULL;   
 
255
  argv[*argc] = NULL;
256
256
  return argv;
257
257
}
258
258
 
259
259
static void free_plugin_list(plugin *plugin_list){
260
 
  for(plugin *next = plugin_list; plugin_list != NULL; plugin_list = next){
 
260
  for(plugin *next; plugin_list != NULL; plugin_list = next){
261
261
    next = plugin_list->next;
262
 
    free(plugin_list->name);
263
262
    for(char **arg = plugin_list->argv; *arg != NULL; arg++){
264
263
      free(*arg);
265
 
    }    
 
264
    }
266
265
    free(plugin_list->argv);
267
266
    for(char **env = plugin_list->environ; *env != NULL; env++){
268
267
      free(*env);
269
268
    }
270
269
    free(plugin_list->environ);
271
270
    free(plugin_list);
272
 
  }  
 
271
  }
273
272
}
274
273
 
275
274
int main(int argc, char *argv[]){
303
302
  ret = sigaction(SIGCHLD, &sigchld_action, &old_sigchld_action);
304
303
  if(ret == -1){
305
304
    perror("sigaction");
306
 
    exitstatus = EXIT_FAILURE;    
 
305
    exitstatus = EXIT_FAILURE;
307
306
    goto fallback;
308
307
  }
309
308
  
685
684
      }
686
685
    }
687
686
    
688
 
    int pipefd[2]; 
 
687
    int pipefd[2];
689
688
    ret = pipe(pipefd);
690
689
    if (ret == -1){
691
690
      perror("pipe");
792
791
  }
793
792
  
794
793
  free_plugin_list(plugin_list);
 
794
  plugin_list = NULL;
795
795
  
796
796
  closedir(dir);
797
797
  dir = NULL;