lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sun, 9 Nov 2008 18:45:10 +0100
From:	Jörn Engel <joern@...fs.org>
To:	Boaz Harrosh <bharrosh@...asas.com>
Cc:	James Bottomley <James.Bottomley@...senPartnership.com>,
	Andrew Morton <akpm@...ux-foundation.org>,
	open-osd development <osd-dev@...n-osd.org>,
	Mike Christie <michaelc@...wisc.edu>,
	FUJITA Tomonori <fujita.tomonori@....ntt.co.jp>,
	Jeff Garzik <jeff@...zik.org>,
	linux-scsi <linux-scsi@...r.kernel.org>, Sami.Iren@...gate.com,
	linux-kernel <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 03/18 ver2] libosd: OSDv1 Headers

On Sun, 9 November 2008 16:52:36 +0200, Boaz Harrosh wrote:
> 
> +struct osdv1_cdb {
> +	struct osd_cdb_head h;
> +	u8 caps[OSDv1_CAP_LEN];
> +	struct osd_security_parameters sec_params;
> +} __packed;

__packed can result in slow code being generated.  But removing the
attribute can lead to bugs on other architectures.  F.e. the size of
the structure below is different for i386 and x86_64.

struct foo {
	u64 bar;
	u32 baz;
};

My personal solution is to use this little macro and then just follow
every structure defition with a size check.

#define SIZE_CHECK(type, size)					\
static inline void check_##type(void)				\
{								\
	BUILD_BUG_ON(sizeof(struct type) != (size));		\
}
...
struct foo {
	u64 bar;
	u32 baz;
};

SIZE_CHECK(foo, 12);

The above would not compile on x86_64 and clearly indicate a missing
__packed.  In other cases the attribute can be removed.

Jörn

-- 
Invincibility is in oneself, vulnerability is in the opponent.
-- Sun Tzu
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ