From 69ae5cff2a135c0e27f2fcad882c8ba415e91f5d Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sun, 4 Jan 2004 21:04:27 +0000 Subject: [PATCH] (copy_internal): Use ASSIGN_STRDUPA rather than alloca and strcpy. --- src/copy.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/copy.c b/src/copy.c index 2ccba22..29c4165 100644 --- a/src/copy.c +++ b/src/copy.c @@ -1,5 +1,5 @@ /* copy.c -- core functions for copying files and directories - Copyright (C) 89, 90, 91, 1995-2003 Free Software Foundation. + Copyright (C) 89, 90, 91, 1995-2004 Free Software Foundation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1036,8 +1036,11 @@ copy_internal (const char *src_path, const char *dst_path, return 1; } - dst_backup = alloca (strlen (tmp_backup) + 1); - strcpy (dst_backup, tmp_backup); + /* Using alloca for a pathname that may be (in theory) arbitrarily + long is not recommended. In fact, even forming such a name + should be discouraged. Eventually, this code will be rewritten + to use fts, so using alloca here will be less of a problem. */ + ASSIGN_STRDUPA (dst_backup, tmp_backup); free (tmp_backup); if (rename (dst_path, dst_backup)) { -- 2.7.4