Date: Sat, 1 Nov 2014 13:59:42 +0000 (UTC) From: Dmitry Marakasov <amdmi3@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r372013 - in head/textproc/catdoc: . files Message-ID: <201411011359.sA1Dxg8Y041049@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: amdmi3 Date: Sat Nov 1 13:59:42 2014 New Revision: 372013 URL: https://svnweb.freebsd.org/changeset/ports/372013 QAT: https://qat.redports.org/buildarchive/r372013/ Log: - Fix UB which leads to guaranteed crash when built with clang 3.4.1+ (e.g. on FreeBSD 10.1+) Reported by: Alex Petrov Added: head/textproc/catdoc/files/patch-src__fileutil.c (contents, props changed) Modified: head/textproc/catdoc/Makefile Modified: head/textproc/catdoc/Makefile ============================================================================== --- head/textproc/catdoc/Makefile Sat Nov 1 13:49:40 2014 (r372012) +++ head/textproc/catdoc/Makefile Sat Nov 1 13:59:42 2014 (r372013) @@ -3,7 +3,7 @@ PORTNAME= catdoc PORTVERSION= 0.94.2 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= textproc MASTER_SITES= http://mirror.amdmi3.ru/distfiles/ \ LOCAL/amdmi3 \ Added: head/textproc/catdoc/files/patch-src__fileutil.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/textproc/catdoc/files/patch-src__fileutil.c Sat Nov 1 13:59:42 2014 (r372013) @@ -0,0 +1,60 @@ +diff --git src/fileutil.c src/fileutil.c +index d902a6a..6afddec 100644 +--- src/fileutil.c ++++ src/fileutil.c +@@ -71,13 +71,12 @@ char *find_file(char *name, const char *path) + char *q; + char path_buf[PATH_BUF_SIZE]; + char dir_sep[2]={DIR_SEP,0}; +- for (p=path;p;p=q+1) { ++ for (p=path;p;) { + q=strchr(p,LIST_SEP); + + if (q) { + if (!prepare_path_buf(path_buf,p,q)) continue; + } else { +- q--; + if (!prepare_path_buf(path_buf,p,p+strlen(p))) continue; + } + strcat(path_buf,dir_sep); /* always one char */ +@@ -88,6 +87,11 @@ char *find_file(char *name, const char *path) + free(name); + return strdup(path_buf); + } ++ if (q) { ++ p = q + 1; ++ } else { ++ p = NULL; ++ } + } + /* if we are here, nothing found */ + free(name); +@@ -186,7 +190,7 @@ void list_charsets(void) { + int count,glob_flags=GLOB_ERR; + #endif + char **ptr; +- for (p=charset_path;p;p=q+1) { ++ for (p=charset_path;p;) { + q=strchr(p,LIST_SEP); + + if (q) { +@@ -197,7 +201,6 @@ void list_charsets(void) { + strncpy(path_buf,p,q-p); + path_buf[q-p]=0; + } else { +- q--; + if (strlen(p)>=PATH_BUF_SIZE) continue; + strcpy(path_buf,p); + } +@@ -244,6 +247,11 @@ void list_charsets(void) { + } + glob_flags|=GLOB_APPEND; + #endif ++ if (q) { ++ p = q + 1; ++ } else { ++ p = NULL; ++ } + } + #ifdef __MSDOS__ + fputs("utf-8\n",stdout);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201411011359.sA1Dxg8Y041049>