=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/patch/backupfile.c,v retrieving revision 1.7 retrieving revision 1.8 diff -c -r1.7 -r1.8 *** src/usr.bin/patch/backupfile.c 1999/12/04 21:00:03 1.7 --- src/usr.bin/patch/backupfile.c 2003/04/05 17:17:53 1.8 *************** *** 1,4 **** ! /* $OpenBSD: backupfile.c,v 1.7 1999/12/04 21:00:03 provos Exp $ */ /* backupfile.c -- make Emacs style backup file names Copyright (C) 1990 Free Software Foundation, Inc. --- 1,4 ---- ! /* $OpenBSD: backupfile.c,v 1.8 2003/04/05 17:17:53 deraadt Exp $ */ /* backupfile.c -- make Emacs style backup file names Copyright (C) 1990 Free Software Foundation, Inc. *************** *** 14,20 **** Some algorithms adapted from GNU Emacs. */ #ifndef lint ! static char rcsid[] = "$OpenBSD: backupfile.c,v 1.7 1999/12/04 21:00:03 provos Exp $"; #endif /* not lint */ #include --- 14,20 ---- Some algorithms adapted from GNU Emacs. */ #ifndef lint ! static char rcsid[] = "$OpenBSD: backupfile.c,v 1.8 2003/04/05 17:17:53 deraadt Exp $"; #endif /* not lint */ #include *************** *** 155,165 **** int version; { char *backup_name; ! backup_name = malloc (strlen (file) + 16); if (backup_name == 0) return 0; ! sprintf (backup_name, "%s.~%d~", file, version); return backup_name; } --- 155,167 ---- int version; { char *backup_name; + size_t len; ! len = strlen (file) + 16; ! backup_name = malloc (len); if (backup_name == 0) return 0; ! snprintf (backup_name, len, "%s.~%d~", file, version); return backup_name; } *************** *** 195,207 **** char *str1, *str2; { char *newstr; - int str1_length = strlen (str1); ! newstr = malloc (str1_length + strlen (str2) + 1); ! if (newstr == 0) return 0; - strcpy (newstr, str1); - strcpy (newstr + str1_length, str2); return newstr; } --- 197,205 ---- char *str1, *str2; { char *newstr; ! if (asprintf(&newstr, "%s%s", str1, str2) == -1) return 0; return newstr; }