diff options
author | jkoshy <jkoshy@FreeBSD.org> | 2006-11-13 04:28:29 +0000 |
---|---|---|
committer | jkoshy <jkoshy@FreeBSD.org> | 2006-11-13 04:28:29 +0000 |
commit | 2ad65fcc6a10dc246018bd341e52bb9739413ee0 (patch) | |
tree | c6d1a369a4c09f4db4e1f967829ce9508a5a2273 | |
parent | ea23609d3a15e57f702160c2e8df82292adf907d (diff) | |
download | FreeBSD-src-2ad65fcc6a10dc246018bd341e52bb9739413ee0.zip FreeBSD-src-2ad65fcc6a10dc246018bd341e52bb9739413ee0.tar.gz |
Attempt to improve application portability by marking `struct ar_hdr'
as `packed'.
The C standard leaves the alignment of individual members of a C
struct upto the implementation, so pedantically speaking portable
code cannot assume that the layout of a `struct ar_hdr' in memory
will match its layout in a file. Using a __packed attribute
declaration forces file and memory layouts for this structure to
match.
Submitted by: ru
-rw-r--r-- | include/ar.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/include/ar.h b/include/ar.h index e04874f..40b4d74 100644 --- a/include/ar.h +++ b/include/ar.h @@ -39,11 +39,15 @@ * SUCH DAMAGE. * * @(#)ar.h 8.2 (Berkeley) 1/21/94 + * + * $FreeBSD$ */ #ifndef _AR_H_ #define _AR_H_ +#include <sys/cdefs.h> + /* Pre-4BSD archives had these magic numbers in them. */ #define OARMAG1 0177555 #define OARMAG2 0177545 @@ -62,6 +66,6 @@ struct ar_hdr { char ar_size[10]; /* size in bytes */ #define ARFMAG "`\n" char ar_fmag[2]; /* consistency check */ -}; +} __packed; #endif /* !_AR_H_ */ |