File imgen-aliasing.patch of Package imgen

Index: TImage.cpp
===================================================================
--- TImage.cpp.orig	2012-07-02 11:41:51.583949021 +0200
+++ TImage.cpp	2012-07-02 12:11:11.496184316 +0200
@@ -218,18 +218,23 @@ bool TImage::PtrSect::CreatePtrSect(u_in
 
 bool TImage::PtrSect::Pack(vector<u_int8_t>& data) 
 {
+    union{ char *chp; u_int32_t *u32p; }pun;
     data << fi_addr;       
     data << fi_size;       
     data << signature;     
     
-    for (u_int32_t i = 0 ; i < sizeof(fw_reserved)/sizeof(fw_reserved[0]) ; i++) 
+    for (u_int32_t i = 0 ; i < sizeof(fw_reserved)/sizeof(fw_reserved[0]) ; i++)
 	data << fw_reserved[i];
 
-    for (u_int32_t i = 0 ; i < sizeof(vsd)/sizeof(vsd[0]) ; i += 4) 
-	data << *((u_int32_t*) &vsd[i]);
+    for (u_int32_t i = 0 ; i < sizeof(vsd)/sizeof(vsd[0]) ; i += 4) {
+    	pun.chp = &vsd[i];
+    	data << *pun.u32p;
+	}
 
-    for (u_int32_t i = 0 ; i < sizeof(psid)/sizeof(psid[0]) ; i += 4) 
-	data << *((u_int32_t*) &psid[i]);
+    for (u_int32_t i = 0 ; i < sizeof(psid)/sizeof(psid[0]) ; i += 4) {
+    	pun.chp = &psid[i];
+    	data << *pun.u32p;
+	}
 
     data << branch_to;
     data << (u_int32_t) _crc.get();
openSUSE Build Service is sponsored by