X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fupdate.c;h=5e9ab98ba2c30690505a145128b5e096966c8891;hb=cd7bdd4076ca154575bbef85eb2157e59befcfe2;hp=69fa5924b1b64e921e69492333142959926ff39b;hpb=14efeb9f956e38d7beaf3fbedb04d3f3bb9ece3a;p=chaz%2Ftar diff --git a/src/update.c b/src/update.c index 69fa592..5e9ab98 100644 --- a/src/update.c +++ b/src/update.c @@ -1,21 +1,22 @@ /* Update a tar archive. - Copyright (C) 1988, 1992, 1994, 1996, 1997, 1999, 2000, 2001, 2003, - 2004, 2005, 2007, 2010 Free Software Foundation, Inc. + Copyright 1988, 1992, 1994, 1996-1997, 1999-2001, 2003-2005, 2007, 2010, + 2013 Free Software Foundation, Inc. - 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 the - Free Software Foundation; either version 3, or (at your option) any later - version. + This file is part of GNU tar. - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General - Public License for more details. + GNU tar is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + GNU tar is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ /* Implement the 'r', 'u' and 'A' options for tar. 'A' means that the file names are tar files, and they should simply be appended to the end @@ -130,6 +131,8 @@ update_archive (void) decode_header (current_header, ¤t_stat_info, ¤t_format, 0); + transform_stat_info (current_header->header.typeflag, + ¤t_stat_info); archive_format = current_format; if (subcommand_option == UPDATE_SUBCOMMAND @@ -143,7 +146,7 @@ update_archive (void) if (S_ISDIR (s.st_mode)) { char *p, *dirp; - DIR *stream; + DIR *stream = NULL; int fd = openat (chdir_fd, name->name, open_read_flags | O_DIRECTORY); if (fd < 0)