Re: SELinux & ia64

From: Matthew Wilcox <matthew_at_wil.cx>
Date: 2004-11-24 03:13:17
On Tue, Nov 23, 2004 at 10:13:27AM -0500, Prarit Bhargava wrote:
> I've tracked this to the usage of le32_to_cpu in 
> 
> security/selinux/ss/policydb.c
> 
> The code in question uses:
> 
>    len = le32_to_cpu(buf[0]);
> 
> and should be
> 
>    len = le32_to_cpu(get_unaligned(&buf[0]));

It would probably be better to find out why buf is unaligned, and see
if we can make other changes to make it aligned.  If we can't, then I
recommend a new macro for accessing this element, rather than nest
the macros like this.  It could look something like:

	len = get_unaligned_le32(buf + 0);

and be implemented perhaps as:

static u32 get_unaligned_le32(u32 *buf)
{
	char *bufc = buf;
	return *bufc | (*(bufc+1) << 8) | (*(bufc+2) << 16) | (*(bufc+3) << 24);
}

-- 
"Next the statesmen will invent cheap lies, putting the blame upon 
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince 
himself that the war is just, and will thank God for the better sleep 
he enjoys after this process of grotesque self-deception." -- Mark Twain
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Tue Nov 23 11:15:10 2004

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:32 EST