/mandos/trunk

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

« back to all changes in this revision

Viewing changes to plugbasedclient.c

  • Committer: Björn Påhlsson
  • Date: 2008-07-20 03:51:41 UTC
  • Revision ID: belorn@braxen-20080720035141-ta0y0be7fotdm4ks
Fixed a overbufferflow bug, thanks to a forgotten \0

Show diffs side-by-side

added added

removed removed

Lines of Context:
60
60
        or dirst->d_name[d_name_len - 1] == '~'){
61
61
      continue;
62
62
    }
63
 
    
64
 
    char *filename = malloc(d_name_len + plugindir_len + 1);
 
63
 
 
64
    char *filename = malloc(d_name_len + plugindir_len + 2);
65
65
    strcpy(filename, plugindir);
66
66
    strcat(filename, "/");
67
67
    strcat(filename, dirst->d_name);    
68
 
    
 
68
 
69
69
    stat(filename, &st);
70
70
 
71
71
    if (S_ISREG(st.st_mode) and (access(filename, X_OK) == 0)){
80
80
        close(pipefd[0]);       /* close unused read end of pipe */
81
81
        dup2(pipefd[1], STDOUT_FILENO); /* replace our stdout */
82
82
        /* create a new modified argument list */
83
 
        char **new_argv = malloc(sizeof(char *) * argc + 1);
 
83
        char **new_argv = malloc(sizeof(char *) * (argc + 1));
84
84
        new_argv[0] = filename;
85
85
        for(int i = 1; i < argc; i++){
86
86
          new_argv[i] = argv[i];