On 2012/03/06 03:11, Brad Smith wrote: > On 06/03/12 2:49 AM, David Coppa wrote: > >On Tue, Mar 6, 2012 at 3:38 AM, Piotr Sikora<piotr.sik...@frickle.com> > >wrote: > > > >>Attached patch fixes this, but to be honest I would consider completely > >>dropping our "fix" from the port . > > > >me too would prefer the latter. > >Other opinions? > > Drop the patches.
OKs? Index: Makefile =================================================================== RCS file: /cvs/ports/lang/lua/Makefile,v retrieving revision 1.43 diff -u -p -r1.43 Makefile --- Makefile 4 Dec 2011 21:12:19 -0000 1.43 +++ Makefile 6 Mar 2012 10:05:37 -0000 @@ -3,7 +3,7 @@ COMMENT= powerful, light-weight programming language DISTNAME= lua-5.1.4 -REVISION= 3 +REVISION= 4 CATEGORIES= lang MASTER_SITES= http://www.lua.org/ftp/ \ Index: patches/patch-src_lobject_c =================================================================== RCS file: patches/patch-src_lobject_c diff -N patches/patch-src_lobject_c --- patches/patch-src_lobject_c 29 Oct 2007 20:30:32 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,65 +0,0 @@ -$OpenBSD: patch-src_lobject_c,v 1.3 2007/10/29 20:30:32 espie Exp $ ---- src/lobject.c.orig Fri Feb 10 18:43:52 2006 -+++ src/lobject.c Mon Oct 29 21:26:20 2007 -@@ -142,7 +142,7 @@ const char *luaO_pushvfstring (lua_State *L, const cha - } - case 'p': { - char buff[4*sizeof(void *) + 8]; /* should be enough space for a `%p' */ -- sprintf(buff, "%p", va_arg(argp, void *)); -+ snprintf(buff, sizeof(buff), "%p", va_arg(argp, void *)); - pushstr(L, buff); - break; - } -@@ -180,35 +180,33 @@ const char *luaO_pushfstring (lua_State *L, const char - - - void luaO_chunkid (char *out, const char *source, size_t bufflen) { -- if (*source == '=') { -- strncpy(out, source+1, bufflen); /* remove first char */ -- out[bufflen-1] = '\0'; /* ensures null termination */ -- } -+ if (*source == '=') -+ strlcpy(out, source+1, bufflen); /* remove first char */ - else { /* out = "source", or "...source" */ - if (*source == '@') { -- size_t l; -+ size_t l, m; - source++; /* skip the `@' */ -- bufflen -= sizeof(" '...' "); - l = strlen(source); -- strcpy(out, ""); -- if (l > bufflen) { -- source += (l-bufflen); /* get last part of file name */ -- strcat(out, "..."); -+ m = bufflen - sizeof(" '...' "); -+ strlcpy(out, "", bufflen); -+ if (l > m) { -+ source += (l-m); /* get last part of file name */ -+ strlcat(out, "...", bufflen); - } -- strcat(out, source); -+ strlcat(out, source, bufflen); - } - else { /* out = [string "string"] */ -- size_t len = strcspn(source, "\n\r"); /* stop at first newline */ -- bufflen -= sizeof(" [string \"...\"] "); -- if (len > bufflen) len = bufflen; -- strcpy(out, "[string \""); -+ size_t pos = strcspn(source, "\n\r"); /* stop at first newline */ -+ size_t len = bufflen - sizeof(" [string \"...\"] "); -+ if (pos > len) pos = len; -+ strlcpy(out, "[string \"", bufflen); - if (source[len] != '\0') { /* must truncate? */ -- strncat(out, source, len); -- strcat(out, "..."); -+ strlcat(out, source, len); -+ strlcat(out, "...", bufflen); - } - else -- strcat(out, source); -- strcat(out, "\"]"); -+ strlcat(out, source, bufflen); -+ strlcat(out, "\"]", bufflen); - } - } - } Index: patches/patch-src_lstrlib_c =================================================================== RCS file: patches/patch-src_lstrlib_c diff -N patches/patch-src_lstrlib_c --- patches/patch-src_lstrlib_c 25 Aug 2011 07:02:42 -0000 1.4 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,55 +0,0 @@ -$OpenBSD: patch-src_lstrlib_c,v 1.4 2011/08/25 07:02:42 jasper Exp $ ---- src/lstrlib.c.orig Wed Aug 24 22:24:32 2011 -+++ src/lstrlib.c Wed Aug 24 22:24:32 2011 -@@ -746,10 +746,9 @@ static const char *scanformat (lua_State *L, const cha - - static void addintlen (char *form) { - size_t l = strlen(form); -- char spec = form[l - 1]; -- strcpy(form + l - 1, LUA_INTFRMLEN); -- form[l + sizeof(LUA_INTFRMLEN) - 2] = spec; -- form[l + sizeof(LUA_INTFRMLEN) - 1] = '\0'; -+ char spec[3] = { 'l', form[l - 1], '\0' }; -+ form[l - 1] = '\0'; -+ strlcat(form, spec, MAX_FORMAT); - } - - -@@ -774,22 +773,24 @@ static int str_format (lua_State *L) { - strfrmt = scanformat(L, strfrmt, form); - switch (*strfrmt++) { - case 'c': { -- sprintf(buff, form, (int)luaL_checknumber(L, arg)); -+ snprintf(buff, sizeof(buff), form, (int)luaL_checknumber(L, arg)); - break; - } - case 'd': case 'i': { - addintlen(form); -- sprintf(buff, form, (LUA_INTFRM_T)luaL_checknumber(L, arg)); -+ snprintf(buff, sizeof(buff), form, -+ (LUA_INTFRM_T)luaL_checknumber(L, arg)); - break; - } - case 'o': case 'u': case 'x': case 'X': { - addintlen(form); -- sprintf(buff, form, (unsigned LUA_INTFRM_T)luaL_checknumber(L, arg)); -+ snprintf(buff, sizeof(buff), form, -+ (unsigned LUA_INTFRM_T)luaL_checknumber(L, arg)); - break; - } - case 'e': case 'E': case 'f': - case 'g': case 'G': { -- sprintf(buff, form, (double)luaL_checknumber(L, arg)); -+ snprintf(buff, sizeof(buff), form, (double)luaL_checknumber(L, arg)); - break; - } - case 'q': { -@@ -807,7 +808,7 @@ static int str_format (lua_State *L) { - continue; /* skip the `addsize' at the end */ - } - else { -- sprintf(buff, form, s); -+ snprintf(buff, sizeof(buff), form, s); - break; - } - } Index: patches/patch-src_luaconf_h =================================================================== RCS file: /cvs/ports/lang/lua/patches/patch-src_luaconf_h,v retrieving revision 1.4 diff -u -p -r1.4 patch-src_luaconf_h --- patches/patch-src_luaconf_h 19 Apr 2008 17:59:32 -0000 1.4 +++ patches/patch-src_luaconf_h 6 Mar 2012 10:05:37 -0000 @@ -10,21 +10,3 @@ $OpenBSD: patch-src_luaconf_h,v 1.4 2008 #define LUA_USE_POSIX #define LUA_USE_DLOPEN /* needs an extra library: -ldl */ #define LUA_USE_READLINE /* needs some extra libraries */ -@@ -520,7 +520,7 @@ - */ - #define LUA_NUMBER_SCAN "%lf" - #define LUA_NUMBER_FMT "%.14g" --#define lua_number2str(s,n) sprintf((s), LUA_NUMBER_FMT, (n)) -+#define lua_number2str(s,n) snprintf((s), sizeof((s)), LUA_NUMBER_FMT, (n)) - #define LUAI_MAXNUMBER2STR 32 /* 16 digits, sign, point, and \0 */ - #define lua_str2number(s,p) strtod((s), (p)) - -@@ -647,7 +647,7 @@ union luai_Cast { double l_d; long l_l; }; - #include <unistd.h> - #define LUA_TMPNAMBUFSIZE 32 - #define lua_tmpnam(b,e) { \ -- strcpy(b, "/tmp/lua_XXXXXX"); \ -+ strlcpy(b, "/tmp/lua_XXXXXX", sizeof(b)); \ - e = mkstemp(b); \ - if (e != -1) close(e); \ - e = (e == -1); }