=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/cvs/util.c,v retrieving revision 1.58 retrieving revision 1.59 diff -c -r1.58 -r1.59 *** src/usr.bin/cvs/util.c 2005/12/03 15:07:21 1.58 --- src/usr.bin/cvs/util.c 2005/12/10 20:27:45 1.59 *************** *** 1,4 **** ! /* $OpenBSD: util.c,v 1.58 2005/12/03 15:07:21 joris Exp $ */ /* * Copyright (c) 2004 Jean-Francois Brousseau * All rights reserved. --- 1,4 ---- ! /* $OpenBSD: util.c,v 1.59 2005/12/10 20:27:45 joris Exp $ */ /* * Copyright (c) 2004 Jean-Francois Brousseau * All rights reserved. *************** *** 340,358 **** break; } ! argv[argc] = strdup(arg); ! if (argv[argc] == NULL) { ! cvs_log(LP_ERRNO, "failed to copy argument"); ! err++; ! break; ! } argc++; } if (err != 0) { /* ditch the argument vector */ for (i = 0; i < (u_int)argc; i++) ! free(argv[i]); argc = -1; } --- 340,353 ---- break; } ! argv[argc] = xstrdup(arg); argc++; } if (err != 0) { /* ditch the argument vector */ for (i = 0; i < (u_int)argc; i++) ! xfree(argv[i]); argc = -1; } *************** *** 378,389 **** return (NULL); size = (ret + 1) * sizeof(char *); ! copy = (char **)malloc(size); ! if (copy == NULL) { ! cvs_log(LP_ERRNO, "failed to allocate argument vector"); ! cvs_freeargv(argv, ret); ! return (NULL); ! } memset(copy, 0, size); for (i = 0; i < ret; i++) --- 373,379 ---- return (NULL); size = (ret + 1) * sizeof(char *); ! copy = (char **)xmalloc(size); memset(copy, 0, size); for (i = 0; i < ret; i++) *************** *** 407,413 **** for (i = 0; i < argc; i++) if (argv[i] != NULL) ! free(argv[i]); } --- 397,403 ---- for (i = 0; i < argc; i++) if (argv[i] != NULL) ! xfree(argv[i]); } *************** *** 644,665 **** return (-1); } ! if ((s = strdup(path)) == NULL) ! return (-1); ! rpath[0] = '\0'; if (repo != NULL) { if (strlcpy(rpath, repo, sizeof(rpath)) >= sizeof(rpath)) { errno = ENAMETOOLONG; cvs_log(LP_ERRNO, "%s", rpath); ! free(s); return (-1); } if (strlcat(rpath, "/", sizeof(rpath)) >= sizeof(rpath)) { errno = ENAMETOOLONG; cvs_log(LP_ERRNO, "%s", rpath); ! free(s); return (-1); } } --- 634,653 ---- return (-1); } ! s = xstrdup(path); rpath[0] = '\0'; if (repo != NULL) { if (strlcpy(rpath, repo, sizeof(rpath)) >= sizeof(rpath)) { errno = ENAMETOOLONG; cvs_log(LP_ERRNO, "%s", rpath); ! xfree(s); return (-1); } if (strlcat(rpath, "/", sizeof(rpath)) >= sizeof(rpath)) { errno = ENAMETOOLONG; cvs_log(LP_ERRNO, "%s", rpath); ! xfree(s); return (-1); } } *************** *** 742,748 **** done: if (entf != NULL) cvs_ent_close(entf); ! free(s); return (ret); } --- 730,736 ---- done: if (entf != NULL) cvs_ent_close(entf); ! xfree(s); return (ret); } *************** *** 904,918 **** switch (*linebuf) { case 'T': if (tagp != NULL) ! *tagp = strdup(linebuf); break; case 'D': if (datep != NULL) ! *datep = strdup(linebuf); break; case 'N': if (tagp != NULL) ! *tagp = strdup(linebuf); if (nbp != NULL) *nbp = 1; break; --- 892,906 ---- switch (*linebuf) { case 'T': if (tagp != NULL) ! *tagp = xstrdup(linebuf); break; case 'D': if (datep != NULL) ! *datep = xstrdup(linebuf); break; case 'N': if (tagp != NULL) ! *tagp = xstrdup(linebuf); if (nbp != NULL) *nbp = 1; break; *************** *** 938,972 **** struct cvs_lines *lines; struct cvs_line *lp; ! lines = (struct cvs_lines *)malloc(sizeof(*lines)); ! if (lines == NULL) ! return (NULL); ! TAILQ_INIT(&(lines->l_lines)); lines->l_nblines = 0; ! lines->l_data = strdup(fcont); ! if (lines->l_data == NULL) { ! free(lines); ! return (NULL); ! } ! lp = (struct cvs_line *)malloc(sizeof(*lp)); ! if (lp == NULL) { ! cvs_freelines(lines); ! return (NULL); ! } ! lp->l_line = NULL; lp->l_lineno = 0; TAILQ_INSERT_TAIL(&(lines->l_lines), lp, l_list); for (dcp = lines->l_data; *dcp != '\0';) { ! lp = (struct cvs_line *)malloc(sizeof(*lp)); ! if (lp == NULL) { ! cvs_freelines(lines); ! return (NULL); ! } ! lp->l_line = dcp; lp->l_lineno = ++(lines->l_nblines); TAILQ_INSERT_TAIL(&(lines->l_lines), lp, l_list); --- 926,943 ---- struct cvs_lines *lines; struct cvs_line *lp; ! lines = (struct cvs_lines *)xmalloc(sizeof(*lines)); TAILQ_INIT(&(lines->l_lines)); lines->l_nblines = 0; ! lines->l_data = xstrdup(fcont); ! lp = (struct cvs_line *)xmalloc(sizeof(*lp)); lp->l_line = NULL; lp->l_lineno = 0; TAILQ_INSERT_TAIL(&(lines->l_lines), lp, l_list); for (dcp = lines->l_data; *dcp != '\0';) { ! lp = (struct cvs_line *)xmalloc(sizeof(*lp)); lp->l_line = dcp; lp->l_lineno = ++(lines->l_nblines); TAILQ_INSERT_TAIL(&(lines->l_lines), lp, l_list); *************** *** 987,997 **** while ((lp = TAILQ_FIRST(&(lines->l_lines))) != NULL) { TAILQ_REMOVE(&(lines->l_lines), lp, l_list); ! free(lp); } ! free(lines->l_data); ! free(lines); } BUF * --- 958,968 ---- while ((lp = TAILQ_FIRST(&(lines->l_lines))) != NULL) { TAILQ_REMOVE(&(lines->l_lines), lp, l_list); ! xfree(lp); } ! xfree(lines->l_data); ! xfree(lines); } BUF *