* gnu/packages/patches/tar-CVE-2016-6321.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/base.scm (tar)[source]: Use it. Signed-off-by: Leo Famulari <leo@famulari.name>
		
			
				
	
	
		
			51 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Fix CVE-2016-6321:
 | |
| 
 | |
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6321
 | |
| https://security-tracker.debian.org/tracker/CVE-2016-6321
 | |
| 
 | |
| Patch adapted from upstream source repository (the changes to 'NEWS'
 | |
| don't apply to the Tar 1.29 release tarball).
 | |
| 
 | |
| http://git.savannah.gnu.org/cgit/tar.git/commit/?id=7340f67b9860ea0531c1450e5aa261c50f67165d
 | |
| 
 | |
| From 7340f67b9860ea0531c1450e5aa261c50f67165d Mon Sep 17 00:00:00 2001
 | |
| From: Paul Eggert <eggert@Penguin.CS.UCLA.EDU>
 | |
| Date: Sat, 29 Oct 2016 21:04:40 -0700
 | |
| Subject: [PATCH] When extracting, skip ".." members
 | |
| 
 | |
| * NEWS: Document this.
 | |
| * src/extract.c (extract_archive): Skip members whose names
 | |
| contain "..".
 | |
| ---
 | |
|  NEWS          | 8 +++++++-
 | |
|  src/extract.c | 8 ++++++++
 | |
|  2 files changed, 15 insertions(+), 1 deletion(-)
 | |
| 
 | |
| diff --git a/src/extract.c b/src/extract.c
 | |
| index f982433..7904148 100644
 | |
| --- a/src/extract.c
 | |
| +++ b/src/extract.c
 | |
| @@ -1629,12 +1629,20 @@ extract_archive (void)
 | |
|  {
 | |
|    char typeflag;
 | |
|    tar_extractor_t fun;
 | |
| +  bool skip_dotdot_name;
 | |
|  
 | |
|    fatal_exit_hook = extract_finish;
 | |
|  
 | |
|    set_next_block_after (current_header);
 | |
|  
 | |
| +  skip_dotdot_name = (!absolute_names_option
 | |
| +		      && contains_dot_dot (current_stat_info.orig_file_name));
 | |
| +  if (skip_dotdot_name)
 | |
| +    ERROR ((0, 0, _("%s: Member name contains '..'"),
 | |
| +	    quotearg_colon (current_stat_info.orig_file_name)));
 | |
| +
 | |
|    if (!current_stat_info.file_name[0]
 | |
| +      || skip_dotdot_name
 | |
|        || (interactive_option
 | |
|  	  && !confirm ("extract", current_stat_info.file_name)))
 | |
|      {
 | |
| -- 
 | |
| 2.11.0
 | |
| 
 |