diff options
Diffstat (limited to 'misc/sdcv/patches/11_allignment.patch')
-rw-r--r-- | misc/sdcv/patches/11_allignment.patch | 27 |
1 files changed, 0 insertions, 27 deletions
diff --git a/misc/sdcv/patches/11_allignment.patch b/misc/sdcv/patches/11_allignment.patch deleted file mode 100644 index dd719f6b7f..0000000000 --- a/misc/sdcv/patches/11_allignment.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: Michal Čihař <nijel@debian.org> -Subject: Fix unalligned access to buffer. - -On several architectures (arm, armel, sparc and ia64), unalligned access to -integers is not allowed. Buffer in this function is not alligned at all and -attempt to read integer from it causes crash of application on such -architectures. - -Bug: https://sourceforge.net/tracker/index.php?func=detail&aid=2149388&group_id=122858&atid=694730 ---- a/src/lib/lib.cpp -+++ b/src/lib/lib.cpp -@@ -496,9 +496,13 @@ - entries[i].keystr=p; - len=strlen(p); - p+=len+1; -- entries[i].off=g_ntohl(*reinterpret_cast<guint32 *>(p)); -+ /* -+ * Can not use typecasting here, because *data does not have -+ * to be alligned and unalligned access fails on some architectures. -+ */ -+ entries[i].off=((unsigned char)p[0] << 24) | ((unsigned char)p[1] << 16) | ((unsigned char)p[2] << 8) | (unsigned char)p[3]; - p+=sizeof(guint32); -- entries[i].size=g_ntohl(*reinterpret_cast<guint32 *>(p)); -+ entries[i].size=((unsigned char)p[0] << 24) | ((unsigned char)p[1] << 16) | ((unsigned char)p[2] << 8) | (unsigned char)p[3]; - p+=sizeof(guint32); - } - } |