dtcm: Coverity 88636
[oweals/cde.git] / cde / programs / dtcm / libDtCmP / cm_tty.c
index 385ef451469933fb545d680301fba6e71a07ea5b..baa3ceb1164326f659726fb84ffb82c9a733b68f 100644 (file)
@@ -168,14 +168,14 @@ extern int _csa_duration_to_iso8601(int, char *);
 **
 *******************************************************************************/
 static void
-copy_and_pad_newlines(register char *dest, register char *source) {
+copy_and_pad_newlines(char *dest, char *source) {
        while (*source)
                if ((*dest++ = *source++) == '\n')
                        *dest++ =  '\t';
 }
 
 static int
-count_newlines(register char *string) {
+count_newlines(char *string) {
        int count = 0;
 
        if (string == NULL)
@@ -1148,12 +1148,12 @@ read_new_appt(FILE *fp, Dtcm_appointment **appt, Props *p, int version)
                                                  a_name, a_tag, a_value);
                                ++attrs_written;
                        }
-
-                       free(a_name);
-                       free(a_tag);
-                       free(a_value);
                }
 
+               free(a_name);
+               free(a_tag);
+               free(a_value);
+
                /* this should pull off the new attribute name */
 
                a_name = a_tag = a_value = NULL;
@@ -1213,12 +1213,13 @@ read_new_appt(FILE *fp, Dtcm_appointment **appt, Props *p, int version)
                                          a_name, a_tag, a_value);
                        ++attrs_written;
                }
-
-               free(a_name);
-               free(a_tag);
-               free(a_value);
        }
 
+       free(a_name);
+       free(a_tag);
+       free(a_value);
+
+
        avlist->count = attrs_written;
        set_appt_links(avlist);
        *appt = avlist;
@@ -1623,6 +1624,7 @@ parse_appt_from_file(nl_catd catd, char *file, CmDataList *list, Props *p,
         */
 
        if (found_appt == B_FALSE) {
+               free(w_buf);
                fclose(fp);
                return(INVALID_DATE);
        }
@@ -1632,10 +1634,11 @@ parse_appt_from_file(nl_catd catd, char *file, CmDataList *list, Props *p,
                valid_op = validate_appt(catd, appt, s_buf, e_buf, d_buf, dur, 
                                         w_buf, r_buf, f_buf, query, key_data, 
                                         version);
-               if (w_buf)
-                       free(w_buf);
        }
 
+       free(w_buf);
+
+
        scrub_attr_list(appt);
 
        fclose(fp);
@@ -1652,10 +1655,10 @@ growcat(char **source, char *new)
 void
 cat_indented_string(char **catbuf, char *string)
 {
-       register char   *p_str = string;
+       char    *p_str = string;
        int             nl_count = 0;
        char            *buf;
-       register char   *b_ptr;
+       char    *b_ptr;
 
        nl_count = count_newlines(string);
 
@@ -2095,8 +2098,10 @@ appointments_to_file(CSA_session_handle target, CSA_entry_handle *appointment_li
        if (f_ptr == NULL)
                return(B_FALSE);
 
-       if (num_appts == 0)
+       if (num_appts == 0) {
+               fclose(f_ptr);
                return(B_FALSE);
+       }
 
        fprintf(f_ptr, "DTCM Archive 1.0\n");
        for (i = 0; i < num_appts; i++) {
@@ -2185,10 +2190,12 @@ str_to_period(char *ps, CSA_sint32 *repeat_type, int *repeat_nth) {
                        unit++;
                 ps2 = cm_strdup(unit);
                 ptr = strchr(ps2, ' ');
-               if (ptr != NULL)
+               if (ptr != NULL) {
                        *ptr = '\0';
-               else
+               } else {
+                       free(ps2);
                        return;
+               }
 
                ptr++;
                while (*ptr == ' ')
@@ -2417,7 +2424,7 @@ time_scope_str_i18n(
 extern boolean_t
 valid_time(Props *p, char *time_str) {
        char            *ptr;
-       register int    num_minutes = 0, num_colons = 0;
+       int     num_minutes = 0, num_colons = 0;
        boolean_t       after_colon = B_FALSE;
        DisplayType     dt = get_int_prop(p, CP_DEFAULTDISP);