bin/147969: cpio -i cannot extract tar archives, breaking release builds

Rudolf Polzer rpolzer at mucke-novak.de
Fri Jun 18 13:00:15 UTC 2010


>Number:         147969
>Category:       bin
>Synopsis:       cpio -i cannot extract tar archives, breaking release builds
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jun 18 13:00:14 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Rudolf Polzer
>Release:        7-STABLE
>Organization:
Vodafone
>Environment:
FreeBSD 7.3-STABLE FreeBSD 7.3-STABLE #0: Wed Jun 16 10:14:12 UTC 2010     root at freebsd:/usr/obj/usr/src/sys/GENERIC  i386
>Description:
cpio (GNU cpio 2.8-FreeBSD) is unable to extract archives made by tar on 7-STABLE.

The bug had surfaced before in 8-CURRENT, but got fixed by instead replacing cpio by bsdcpio. See the mailing list discussion on:

http://kerneltrap.org/mailarchive/freebsd-current/2008/8/18/2980244/thread

This also e.g. surfaces when creating a release CD using release/Makefile, then trying to install from it - the installation routine will bail out on extracting the distributions.
>How-To-Repeat:
# tar cvf - /var/empty | cpio -i -t
tar: Removing leading '/' from member names
a var/empty
cpio: Malformed number 000555 
cpio: Malformed number 00000000166 
cpio: Malformed number 11351324133 
cpio: Malformed number 000000 
cpio: Malformed number 000000 
4 blocks

(note: the numbers all have a trailing space, causing the "Malformed" output)
>Fix:
Either: undo the upgrade to cpio 2.8
Or: use bsdcpio in 7-STABLE too
Or: change from_ascii() in contrib/cpio/src/copyin.c to accept trailing spaces

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list