mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
gpgtar: List and extract using extended headers.
* tools/gpgtar.h (TF_EXTHDR, TF_GEXTHDR): New. * tools/gpgtar-list.c (parse_header): Set the new type flags. (parse_extended_header): New. (read_header): Add arg r_extheader and parse extended header. (print_header): Consult the extended header. (gpgtar_list): Pass an extended header object. (gpgtar_read_header): Ditto. (gpgtar_print_header): Ditto. * tools/gpgtar-extract.c (extract): New arg exthdr and factor name checking out to ... (check_suspicious_name): new. (extract_regular): Add arg exthdr and consult it. (extract_directory): Likewise. (gpgtar_extract): Provide extheader object. -- GnuPG-bug-id: 5754
This commit is contained in:
parent
3a1c556b2c
commit
99a8b1f138
4 changed files with 272 additions and 62 deletions
|
@ -17,6 +17,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, see <https://www.gnu.org/licenses/>.
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -293,8 +294,10 @@ add_entry (const char *dname, const char *entryname, scanctrl_t scanctrl)
|
|||
xfree (hdr);
|
||||
else
|
||||
{
|
||||
/* FIXME: We don't have the extended info yet available so we
|
||||
* can't print them. */
|
||||
if (opt.verbose)
|
||||
gpgtar_print_header (hdr, log_get_stream ());
|
||||
gpgtar_print_header (hdr, NULL, log_get_stream ());
|
||||
*scanctrl->flist_tail = hdr;
|
||||
scanctrl->flist_tail = &hdr->next;
|
||||
}
|
||||
|
@ -771,7 +774,7 @@ build_header (void *record, tar_header_t hdr, strlist_t *r_exthdr)
|
|||
hdr->name, gpg_strerror (err));
|
||||
return err;
|
||||
}
|
||||
sl->flags = 2; /* Mark as linkname */
|
||||
sl->flags = 2; /* Mark as linkpath */
|
||||
}
|
||||
}
|
||||
#endif /*!HAVE_W32_SYSTEM*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue