Author: bapt
Date: Wed Apr 20 21:23:42 2016
New Revision: 298378
URL: https://svnweb.freebsd.org/changeset/base/298378

Log:
  Plug memory leaks
  
  Reported by:  Coverity
  CID=          1338535, 1338536, 1338542, 1338569, 1338570

Modified:
  head/usr.bin/localedef/collate.c
  head/usr.bin/localedef/time.c

Modified: head/usr.bin/localedef/collate.c
==============================================================================
--- head/usr.bin/localedef/collate.c    Wed Apr 20 21:21:47 2016        
(r298377)
+++ head/usr.bin/localedef/collate.c    Wed Apr 20 21:23:42 2016        
(r298378)
@@ -502,6 +502,7 @@ define_collsym(char *name)
                 * This should never happen because we are only called
                 * for undefined symbols.
                 */
+               free(sym);
                INTERR;
                return;
        }
@@ -538,6 +539,7 @@ get_collundef(char *name)
                if (((ud = calloc(sizeof (*ud), 1)) == NULL) ||
                    ((ud->name = strdup(name)) == NULL)) {
                        fprintf(stderr,"out of memory");
+                       free(ud);
                        return (NULL);
                }
                for (i = 0; i < NUM_WT; i++) {
@@ -812,6 +814,7 @@ define_collelem(char *name, wchar_t *wcs
        if ((RB_FIND(elem_by_symbol, &elem_by_symbol, e) != NULL) ||
            (RB_FIND(elem_by_expand, &elem_by_expand, e) != NULL)) {
                fprintf(stderr, "duplicate collating element definition");
+               free(e);
                return;
        }
        RB_INSERT(elem_by_symbol, &elem_by_symbol, e);

Modified: head/usr.bin/localedef/time.c
==============================================================================
--- head/usr.bin/localedef/time.c       Wed Apr 20 21:21:47 2016        
(r298377)
+++ head/usr.bin/localedef/time.c       Wed Apr 20 21:23:42 2016        
(r298378)
@@ -87,6 +87,7 @@ add_time_str(wchar_t *wcs)
        case T_ERA_T_FMT:
        case T_ERA_D_T_FMT:
                /* Silently ignore it. */
+               free(str);
                break;
        default:
                free(str);
@@ -139,6 +140,7 @@ add_time_list(wchar_t *wcs)
                        tm.pm = str;
                } else {
                        fprintf(stderr,"too many list elements");
+                       free(str);
                }
                break;
        case T_ALT_DIGITS:
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to