RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: xar/ ChangeLog xar/lib/ darwinattr.c data.c xar/src/ xar.1

From: Anders F. Björklund <afb@rpm5.org>
Date: Fri 09 Nov 2007 - 01:00:08 CET
Message-Id: <20071109000008.8BF4834845E@rpm5.org>
  RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Anders F. Björklund
  Root:   /v/rpm/cvs                       Email:  afb@rpm5.org
  Module: xar                              Date:   09-Nov-2007 01:00:08
  Branch: HEAD                             Handle: 2007110900000701

  Modified files:
    xar                     ChangeLog
    xar/lib                 darwinattr.c data.c
    xar/src                 xar.1

  Log:
    merge bugfixes from upstream

  Summary:
    Revision    Changes     Path
    1.10        +3  -0      xar/ChangeLog
    1.4         +27 -9      xar/lib/darwinattr.c
    1.3         +3  -1      xar/lib/data.c
    1.9         +4  -1      xar/src/xar.1
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: xar/ChangeLog
  ============================================================================
  $ cvs diff -u -r1.9 -r1.10 ChangeLog
  --- xar/ChangeLog	24 Oct 2007 06:43:53 -0000	1.9
  +++ xar/ChangeLog	9 Nov 2007 00:00:07 -0000	1.10
  @@ -1,4 +1,7 @@
   devel
  +	2007-11-1 Dave Leimbach leimy2k@gmail.com
  +	* lib/data.c: fixed a file descriptor leak by adding a close before return
  +	* src/xar.1: Added man page text for --extract-subdoc
   	2007-10-22 Rob Braun bbraun@synack.net
   	* src/xar.c src/xar.1: Add -a as a synonym for --compression=lzma
   	* lib/darwinattr.c lib/fbsdattr.c: Add --prop-exclude support for darwin and fbsd EAs.
  @@ .
  patch -p0 <<'@@ .'
  Index: xar/lib/darwinattr.c
  ============================================================================
  $ cvs diff -u -r1.3 -r1.4 darwinattr.c
  --- xar/lib/darwinattr.c	24 Oct 2007 06:43:53 -0000	1.3
  +++ xar/lib/darwinattr.c	9 Nov 2007 00:00:08 -0000	1.4
  @@ -502,13 +502,19 @@
   	memset(&ash, 0, sizeof(ash));
   	memset(&ase, 0, sizeof(ase));
   	r = read(DARWINATTR_CONTEXT(context)->fd, &ash, XAR_ASH_SIZE);
  -	if( r < XAR_ASH_SIZE )
  +	if( r < XAR_ASH_SIZE ) {
  +		close(DARWINATTR_CONTEXT(context)->fd);
   		return -1;
  +	}
   
  -	if( ntohl(ash.magic) != APPLEDOUBLE_MAGIC )
  +	if( ntohl(ash.magic) != APPLEDOUBLE_MAGIC ) {
  +		close(DARWINATTR_CONTEXT(context)->fd);
   		return -1;
  -	if( ntohl(ash.version) != APPLEDOUBLE_VERSION )
  +	}
  +	if( ntohl(ash.version) != APPLEDOUBLE_VERSION ) {
  +		close(DARWINATTR_CONTEXT(context)->fd);
   		return -1;
  +	}
   
   	off = XAR_ASH_SIZE;
   	num_entries = ntohs(ash.entries);
  @@ -516,36 +522,48 @@
   	for(i = 0; i < num_entries; i++) {
   		off_t entoff;
   		r = read(DARWINATTR_CONTEXT(context)->fd, &ase, sizeof(ase));
  -		if( r < sizeof(ase) )
  +		if( r < sizeof(ase) ) {
  +			close(DARWINATTR_CONTEXT(context)->fd);
   			return -1;
  +		}
   		off+=r;
   
   		if( ntohl(ase.entry_id) == AS_ID_FINDER ) {
   			xar_ea_t e;
   			entoff = (off_t)ntohl(ase.offset);
  -			if( lseek(DARWINATTR_CONTEXT(context)->fd, entoff, SEEK_SET) == -1 )
  +			if( lseek(DARWINATTR_CONTEXT(context)->fd, entoff, SEEK_SET) == -1 ) {
  +				close(DARWINATTR_CONTEXT(context)->fd);
   				return -1;
  +			}
   			r = read(DARWINATTR_CONTEXT(context)->fd, z, sizeof(z));
  -			if( r < sizeof(z) )
  +			if( r < sizeof(z) ) {
  +				close(DARWINATTR_CONTEXT(context)->fd);
   				return -1;
  +			}
   			
   			DARWINATTR_CONTEXT(context)->finfo = z;
   			e = xar_ea_new(f, "com.apple.FinderInfo");
   			xar_attrcopy_to_heap(x, f, xar_ea_root(e), finfo_read, context);
  -			if( lseek(DARWINATTR_CONTEXT(context)->fd, (off_t)off, SEEK_SET) == -1 )
  +			if( lseek(DARWINATTR_CONTEXT(context)->fd, (off_t)off, SEEK_SET) == -1 ) {
  +				close(DARWINATTR_CONTEXT(context)->fd);
   				return -1;
  +			}
   		}
   		if( ntohl(ase.entry_id) == AS_ID_RESOURCE ) {
   			xar_ea_t e;
   			entoff = (off_t)ntohl(ase.offset);
  -			if( lseek(DARWINATTR_CONTEXT(context)->fd, entoff, SEEK_SET) == -1 )
  +			if( lseek(DARWINATTR_CONTEXT(context)->fd, entoff, SEEK_SET) == -1 ) {
  +				close(DARWINATTR_CONTEXT(context)->fd);
   				return -1;
  +			}
   
   			e = xar_ea_new(f, "com.apple.ResourceFork");
   			xar_attrcopy_to_heap(x, f, xar_ea_root(e), xar_rsrc_read, context);
   
  -			if( lseek(DARWINATTR_CONTEXT(context)->fd, (off_t)off, SEEK_SET) == -1 )
  +			if( lseek(DARWINATTR_CONTEXT(context)->fd, (off_t)off, SEEK_SET) == -1 ) {
  +				close(DARWINATTR_CONTEXT(context)->fd);
   				return -1;
  +			}
   		}
   	}
   
  @@ .
  patch -p0 <<'@@ .'
  Index: xar/lib/data.c
  ============================================================================
  $ cvs diff -u -r1.2 -r1.3 data.c
  --- xar/lib/data.c	30 Aug 2007 18:35:45 -0000	1.2
  +++ xar/lib/data.c	9 Nov 2007 00:00:08 -0000	1.3
  @@ -238,8 +238,10 @@
   	tmpp = xar_prop_pfirst(f);
   	if( tmpp )
   		tmpp = xar_prop_find(tmpp, "data");
  -	if( !tmpp )
  +	if( !tmpp ) {
  +		close(context.fd);
   		return 0;
  +	}
   	retval = xar_attrcopy_from_heap(x, f, tmpp, xar_data_write, (void *)(&context));
   	
   	if( context.fd > 0 ){		
  @@ .
  patch -p0 <<'@@ .'
  Index: xar/src/xar.1
  ============================================================================
  $ cvs diff -u -r1.8 -r1.9 xar.1
  --- xar/src/xar.1	24 Oct 2007 06:40:37 -0000	1.8
  +++ xar/src/xar.1	9 Nov 2007 00:00:08 -0000	1.9
  @@ -1,4 +1,4 @@
  -.TH XAR "1" "August 22, 2005" "version 1.4" "User Commands"
  +.TH XAR "1" "November 1, 2007" "version 1.6" "User Commands"
   .SH NAME
   xar \- eXtensible ARchiver
   .SH SYNOPSIS
  @@ -55,6 +55,9 @@
   \-\-dump\-header
   Has xar print out the xar binary header information to stdout.
   .TP
  +\-\-extract\-subdoc=<name> 
  +Extracts the specified subdocument to a document in cwd named <name>.xml
  +.TP
   \-\-list\-subdocs
   List the subdocuments in the xml header
   .TP
  @@ .
Received on Fri Nov 9 01:00:08 2007
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.