Changeset 1959

Show
Ignore:
Timestamp:
02/12/07 19:33:15 (2 years ago)
Author:
mbr
Message:

added safe_malloc() to always perform NULL check on pointer returned by malloc()

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • psad/trunk/kmsgsd.c

    r1946 r1959  
    404404            if (find_char_var("FW_MSG_SEARCH", tmp_fw_search_buf, index)) { 
    405405                fw_msg_search[num_fw_search_strings] 
    406                     = (char *) malloc(strlen(tmp_fw_search_buf)+1); 
     406                    = (char *) safe_malloc(strlen(tmp_fw_search_buf)+1); 
    407407                strlcpy(fw_msg_search[num_fw_search_strings], 
    408408                    tmp_fw_search_buf, strlen(tmp_fw_search_buf)+1); 
     
    419419         * to "DROP".  Psad will generate a syslog warning.  */ 
    420420        fw_msg_search[num_fw_search_strings] 
    421             = (char *) malloc(strlen("DROP")+1); 
     421            = (char *) safe_malloc(strlen("DROP")+1); 
    422422        strlcpy(fw_msg_search[0], "DROP", strlen("DROP")+1); 
    423423        num_fw_search_strings++; 
  • psad/trunk/psad.h

    r1783 r1959  
    6767void expand_sub_var_value(char *value, const char *sub_var, 
    6868    const char *pre_str, const char *post_str); 
    69 int find_char_var(char *, char *, char *); 
     69int find_char_var(const char *, char *, char *); 
    7070int check_import_config(time_t *config_mtime, char *config_file); 
     71void *safe_malloc(const unsigned int len); 
    7172 
    7273/* From OpenBSD */ 
  • psad/trunk/psad_funcs.c

    r1901 r1959  
    110110} 
    111111 
    112 int find_char_var(char *search_str, char *charvar, char *line) 
     112int find_char_var(const char *search_str, char *charvar, char *line) 
    113113{ 
    114114    char *index_tmp; 
     
    165165    charvar[char_ctr] = '\0';  /* replace the ';' with the NULL character */ 
    166166    return 1; 
     167} 
     168 
     169void *safe_malloc(const unsigned int len) 
     170{ 
     171    void *buf = NULL; 
     172    buf = malloc(len); 
     173    if (buf == NULL) { 
     174        fprintf(stderr, "[*] Could not malloc() %d bytes\n", len); 
     175        exit(EXIT_FAILURE); 
     176    } 
     177    return buf; 
    167178} 
    168179 
  • psad/trunk/psadwatchd.c

    r1947 r1959  
    335335    int arg_num=0, non_ws, i; 
    336336 
    337     prog_argv[arg_num] = (char *) malloc(strlen(binary)+1); 
    338     if (prog_argv[arg_num] == NULL) { 
    339         exit(EXIT_FAILURE); 
    340     } 
     337    prog_argv[arg_num] = (char *) safe_malloc(strlen(binary)+1); 
    341338    strlcpy(prog_argv[arg_num], binary, strlen(binary)+1); 
    342339    arg_num++; 
     
    370367                exit(EXIT_FAILURE); 
    371368 
    372             prog_argv[arg_num] = (char *) malloc(non_ws+1); 
    373             if (prog_argv[arg_num] == NULL) { 
    374                 exit(EXIT_FAILURE); 
    375             } 
     369            prog_argv[arg_num] = (char *) safe_malloc(non_ws+1); 
     370 
    376371            for (i=0; i<non_ws; i++) 
    377372                prog_argv[arg_num][i] = *(index - (non_ws - i)); 
     
    384379        } 
    385380    } 
    386  
    387381    if (arg_num >= MAX_ARG_LEN) 
    388382        exit(EXIT_FAILURE); 
    389     prog_argv[arg_num] = (char *) malloc(1); 
    390     if (prog_argv[arg_num] == NULL) { 
    391         exit(EXIT_FAILURE); 
    392     } 
     383 
    393384    prog_argv[arg_num] = NULL; 
    394385