Package: cpio
Version: 2.7-1
Severity: serious
Tags: patch
Justification: no longer builds from source

Versions >= 2.8 of cpio fails to build on ARM due to a testsuite
failure, but the bug is already present in version 2.7.

cpio uses structures to map the file header, and the whole structure is
read at once. This does not work on all architectures (like ARM), as
they may use padding. The structures should be declared as packed to
avoid padding.

You will find a patch below to fix the problem.

--- cpio-2.9.orig/src/cpiohdr.h
+++ cpio-2.9/src/cpiohdr.h
@@ -35,7 +35,7 @@
   unsigned short c_mtimes[2];
   unsigned short c_namesize;
   unsigned short c_filesizes[2];
-};
+} __attribute__((packed));
 
 struct old_ascii_header
 {
@@ -50,7 +50,7 @@
   char c_mtime[11];
   char c_namesize[6];
   char c_filesize[11];
-};
+} __attribute__((packed));
 
 /* "New" portable format and CRC format:
 
@@ -80,7 +80,7 @@
   char c_namesize[8];  /* count includes terminating NUL in pathname */
   char c_chksum[8];    /* 0 for "new" portable format; for CRC format
                          the sum of all the bytes in the file  */
-};
+} __attribute__((packed));
 
 struct cpio_file_stat /* Internal representation of a CPIO header */
 {

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: arm (armv5tejl)

Kernel: Linux 2.6.18-4-versatile
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8) (ignored: LC_ALL 
set to fr_FR.UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages cpio depends on:
ii  libc6                         2.6-5      GNU C Library: Shared libraries

cpio recommends no packages.

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to