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() {