commit:     521efc21ffc6e32dd4b14c15f3386d837817610d
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 30 22:45:38 2017 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sat Dec 30 22:46:03 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=521efc21

media-gfx/fontforge: fix misaligned memory access

Patch by Rolf Eike Beer.

Closes: https://bugs.gentoo.org/642756
Package-Manager: Portage-2.3.19_p3, Repoman-2.3.6_p37

 .../files/20170731-gethex-unaligned.patch          | 22 ++++++++++++++++++++++
 ...0731-r2.ebuild => fontforge-20170731-r3.ebuild} |  1 +
 2 files changed, 23 insertions(+)

diff --git a/media-gfx/fontforge/files/20170731-gethex-unaligned.patch 
b/media-gfx/fontforge/files/20170731-gethex-unaligned.patch
new file mode 100644
index 00000000000..812f7a44472
--- /dev/null
+++ b/media-gfx/fontforge/files/20170731-gethex-unaligned.patch
@@ -0,0 +1,22 @@
+fix unaligned access in gethex()
+
+--- a/fontforge/sfd.c
++++ b/fontforge/sfd.c
+@@ -3393,6 +3393,7 @@
+ static int gethex(FILE *sfd, uint32 *val) {
+     char tokbuf[100]; int ch;
+     char *pt=tokbuf, *end = tokbuf+100-2;
++    uint32 u;
+ 
+     while ( isspace(ch = nlgetc(sfd)));
+     if ( ch=='#' )
+@@ -3416,7 +3417,8 @@
+     }
+     *pt='\0';
+     ungetc(ch,sfd);
+-    *val = strtoul(tokbuf,NULL,16);
++    u = strtoul(tokbuf,NULL,16);
++    memcpy(val, &u, sizeof(u));
+ return( pt!=tokbuf?1:ch==EOF?-1: 0 );
+ }
+ 

diff --git a/media-gfx/fontforge/fontforge-20170731-r2.ebuild 
b/media-gfx/fontforge/fontforge-20170731-r3.ebuild
similarity index 98%
rename from media-gfx/fontforge/fontforge-20170731-r2.ebuild
rename to media-gfx/fontforge/fontforge-20170731-r3.ebuild
index c8ad245b14d..ae146eb0647 100644
--- a/media-gfx/fontforge/fontforge-20170731-r2.ebuild
+++ b/media-gfx/fontforge/fontforge-20170731-r3.ebuild
@@ -65,6 +65,7 @@ S="${WORKDIR}/fontforge-2.0.${PV}"
 PATCHES=(
        "${FILESDIR}"/20170731-startnoui-FindOrMakeEncoding.patch
        "${FILESDIR}"/20170731-tilepath.patch
+       "${FILESDIR}"/20170731-gethex-unaligned.patch
 )
 
 pkg_setup() {

Reply via email to