[Scummvm-git-logs] scummvm master -> fa387821b3c999d6703c71e6377f1e70994e725b

sev- noreply at scummvm.org
Fri Dec 16 10:09:00 UTC 2022


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
8bf6aec613 COMMON: LUA: Replace sprintf -> snprintf
fa387821b3 GRIM: LUA: Replace sprintf -> snprintf


Commit: 8bf6aec613dbe10b19823c2a5b13656f5f00107f
    https://github.com/scummvm/scummvm/commit/8bf6aec613dbe10b19823c2a5b13656f5f00107f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2022-12-16T10:54:49+01:00

Commit Message:
COMMON: LUA: Replace sprintf -> snprintf

Changed paths:
    common/lua/liolib.cpp
    common/lua/llex.cpp
    common/lua/lobject.cpp
    common/lua/lstrlib.cpp
    common/lua/luaconf.h


diff --git a/common/lua/liolib.cpp b/common/lua/liolib.cpp
index f0bf5cbff9f..34db0376ba3 100644
--- a/common/lua/liolib.cpp
+++ b/common/lua/liolib.cpp
@@ -441,8 +441,8 @@ static int g_write (lua_State *L, Lua::LuaFileProxy *f, int arg) {
     if (lua_type(L, arg) == LUA_TNUMBER) {
       // optimization: could be done exactly as for strings
 	  if (status) {
-        char buffer[22];
-		sprintf(buffer, LUA_NUMBER_FMT, lua_tonumber(L, arg));
+		char buffer[22];
+		snprintf(buffer, 22, LUA_NUMBER_FMT, lua_tonumber(L, arg));
 		status = f->write(buffer, strlen(buffer)) == strlen(buffer);
 	  }
 	}
diff --git a/common/lua/llex.cpp b/common/lua/llex.cpp
index 306442eb562..beaee300eab 100644
--- a/common/lua/llex.cpp
+++ b/common/lua/llex.cpp
@@ -183,7 +183,7 @@ static void trydecpoint (LexState *ls, SemInfo *seminfo) {
   char old = ls->decpoint;
   char buf[5];
   int i;
-  sprintf(buf, "%.1f", 1.0);
+  snprintf(buf, 5, "%.1f", 1.0);
   ls->decpoint = '.';
   for (i = 0; buf[i]; i++) {
     if (!Common::isSpace(buf[i]) && !Common::isDigit(buf[i])) {
diff --git a/common/lua/lobject.cpp b/common/lua/lobject.cpp
index c792201876b..cd35e9fa572 100644
--- a/common/lua/lobject.cpp
+++ b/common/lua/lobject.cpp
@@ -142,7 +142,7 @@ const char *luaO_pushvfstring (lua_State *L, const char *fmt, va_list argp) {
       }
       case 'p': {
         char buff[4*sizeof(void *) + 8]; /* should be enough space for a `%p' */
-        sprintf(buff, "%p", va_arg(argp, void *));
+        snprintf(buff, 4*sizeof(void *) + 8, "%p", va_arg(argp, void *));
         pushstr(L, buff);
         break;
       }
diff --git a/common/lua/lstrlib.cpp b/common/lua/lstrlib.cpp
index 6d323abddf5..9d43ba43dab 100644
--- a/common/lua/lstrlib.cpp
+++ b/common/lua/lstrlib.cpp
@@ -771,22 +771,22 @@ 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, MAX_ITEM, 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, MAX_ITEM, 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, MAX_ITEM, 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, MAX_ITEM, form, (double)luaL_checknumber(L, arg));
           break;
         }
         case 'q': {
@@ -803,7 +803,7 @@ static int str_format (lua_State *L) {
             luaL_addvalue(&b);
             continue;  /* skip the `addsize' at the end */
           }
-          sprintf(buff, form, s);
+          snprintf(buff, MAX_ITEM, form, s);
           break;
         }
         default: {  /* also treat cases `pnLlh' */
diff --git a/common/lua/luaconf.h b/common/lua/luaconf.h
index bc72e2968d5..d5048e46384 100644
--- a/common/lua/luaconf.h
+++ b/common/lua/luaconf.h
@@ -519,7 +519,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), LUAI_MAXNUMBER2STR, LUA_NUMBER_FMT, (n))
 #define LUAI_MAXNUMBER2STR	32 /* 16 digits, sign, point, and \0 */
 #define lua_str2number(s,p)	strtod((s), (p))
 


Commit: fa387821b3c999d6703c71e6377f1e70994e725b
    https://github.com/scummvm/scummvm/commit/fa387821b3c999d6703c71e6377f1e70994e725b
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2022-12-16T11:06:08+01:00

Commit Message:
GRIM: LUA: Replace sprintf -> snprintf

Changed paths:
    engines/grim/lua/lauxlib.cpp
    engines/grim/lua/lbuiltin.cpp
    engines/grim/lua/ldo.cpp
    engines/grim/lua/liolib.cpp
    engines/grim/lua/lstrlib.cpp
    engines/grim/lua/lvm.cpp


diff --git a/engines/grim/lua/lauxlib.cpp b/engines/grim/lua/lauxlib.cpp
index bafad6eed85..819646b21a1 100644
--- a/engines/grim/lua/lauxlib.cpp
+++ b/engines/grim/lua/lauxlib.cpp
@@ -99,7 +99,7 @@ void luaL_verror(const char *fmt, ...) {
 	va_list argp;
 
 	va_start(argp, fmt);
-	vsprintf(buff, fmt, argp);
+	vsnprintf(buff, 100, fmt, argp);
 	va_end(argp);
 	lua_error(buff);
 }
diff --git a/engines/grim/lua/lbuiltin.cpp b/engines/grim/lua/lbuiltin.cpp
index f64e5e60a9f..4288df81320 100644
--- a/engines/grim/lua/lbuiltin.cpp
+++ b/engines/grim/lua/lbuiltin.cpp
@@ -125,17 +125,17 @@ static const char *to_string(lua_Object obj) {
 		return lua_getstring(obj);
 	case LUA_T_ARRAY:
 		{
-			sprintf(buff, "table: %p", (void *)o->value.a);
+			snprintf(buff, 30, "table: %p", (void *)o->value.a);
 			return buff;
 		}
 	case LUA_T_CLOSURE:
 		{
-			sprintf(buff, "function: %p", (void *)o->value.cl);
+			snprintf(buff, 30, "function: %p", (void *)o->value.cl);
 			return buff;
 		}
 	case LUA_T_PROTO:
 		{
-			sprintf(buff, "function: %p", (void *)o->value.tf);
+			snprintf(buff, 30, "function: %p", (void *)o->value.tf);
 			return buff;
 		}
 	case LUA_T_CPROTO:
@@ -149,17 +149,17 @@ static const char *to_string(lua_Object obj) {
 
 			ptrUnion.funcPtr = o->value.f;
 
-			sprintf(buff, "function: %p", ptrUnion.objPtr);
+			snprintf(buff, 30, "function: %p", ptrUnion.objPtr);
 			return buff;
 		}
 	case LUA_T_USERDATA:
 		{
-			sprintf(buff, "userdata: %08X", o->value.ud.id);
+			snprintf(buff, 30, "userdata: %08X", o->value.ud.id);
 			return buff;
 		}
 	case LUA_T_TASK:
 		{
-			sprintf(buff, "task: %d", (int)o->value.n);
+			snprintf(buff, 30, "task: %d", (int)o->value.n);
 			return buff;
 		}
 	case LUA_T_NIL:
diff --git a/engines/grim/lua/ldo.cpp b/engines/grim/lua/ldo.cpp
index 617a42f31b5..1d2a309bfd2 100644
--- a/engines/grim/lua/ldo.cpp
+++ b/engines/grim/lua/ldo.cpp
@@ -416,12 +416,12 @@ void luaD_gcIM(TObject *o) {
 #define SIZE_PREF 20  // size of string prefix to appear in error messages
 #define SSIZE_PREF "20"
 
-static void build_name (const char *str, char *name) {
+static void build_name (const char *str, char *name, int size) {
 	if (str == nullptr || *str == ID_CHUNK)
 		strcpy(name, "(buffer)");
 	else {
 		char *temp;
-		sprintf(name, "(dostring) >> \"%." SSIZE_PREF "s\"", str);
+		snprintf(name, size, "(dostring) >> \"%." SSIZE_PREF "s\"", str);
 		temp = strchr(name, '\n');
 		if (temp) {  // end string after first line
 			*temp = '"';
@@ -439,7 +439,7 @@ int32 lua_dobuffer(const char *buff, int32 size, const char *name) {
 	ZIO z;
 
 	if (!name) {
-		build_name(buff, newname);
+		build_name(buff, newname, SIZE_PREF + 25);
 		name = newname;
 	}
 	luaZ_mopen(&z, buff, size, name);
diff --git a/engines/grim/lua/liolib.cpp b/engines/grim/lua/liolib.cpp
index 4cd26b8f614..434190bc2c2 100644
--- a/engines/grim/lua/liolib.cpp
+++ b/engines/grim/lua/liolib.cpp
@@ -338,7 +338,7 @@ static void io_date() {
 	char b[BUFSIZ];
 
 	g_system->getTimeAndDate(t);
-	sprintf(b, "%02d.%02d.%d %02d:%02d.%02d", t.tm_mday, t.tm_mon + 1, 1900 + t.tm_year, t.tm_hour, t.tm_min, t.tm_sec);
+	snprintf(b, BUFSIZ, "%02d.%02d.%d %02d:%02d.%02d", t.tm_mday, t.tm_mon + 1, 1900 + t.tm_year, t.tm_hour, t.tm_min, t.tm_sec);
 	lua_pushstring(b);
 }
 
@@ -357,44 +357,44 @@ static void lua_printstack() {
 		const char *filename;
 		int32 linedefined;
 		lua_funcinfo(func, &filename, &linedefined);
-		sprintf(buf, (level == 2) ? "Active Stack:\n\t" : "\t");
+		snprintf(buf, 256, (level == 2) ? "Active Stack:\n\t" : "\t");
 		g_stderr->write(buf, strlen(buf));
 		switch (*lua_getobjname(func, &name)) {
 		case 'g':
-			sprintf(buf, "function %s", name);
+			snprintf(buf, 256, "function %s", name);
 			break;
 		case 't':
-			sprintf(buf, "`%s' tag method", name);
+			snprintf(buf, 256, "`%s' tag method", name);
 			break;
 		default:
 			{
 				if (linedefined == 0)
-					sprintf(buf, "main of %s", filename);
+					snprintf(buf, 256, "main of %s", filename);
 				else if (linedefined < 0)
-					sprintf(buf, "%s", filename);
+					snprintf(buf, 256, "%s", filename);
 				else
-					sprintf(buf, "function (%s:%d)", filename, (int)linedefined);
+					snprintf(buf, 256, "function (%s:%d)", filename, (int)linedefined);
 				filename = nullptr;
 			}
 		}
 		g_stderr->write(buf, strlen(buf));
 
 		if ((currentline = lua_currentline(func)) > 0) {
-			sprintf(buf, " at line %d", (int)currentline);
+			snprintf(buf, 256, " at line %d", (int)currentline);
 			g_stderr->write(buf, strlen(buf));
 		}
 		if (filename) {
-			sprintf(buf, " [in file %s]", filename);
+			snprintf(buf, 256, " [in file %s]", filename);
 			g_stderr->write(buf, strlen(buf));
 		}
-		sprintf(buf, "\n");
+		snprintf(buf, 256, "\n");
 		g_stderr->write(buf, strlen(buf));
 	}
 }
 
 static void errorfb() {
 	char buf[256];
-	sprintf(buf, "lua: %s\n", lua_getstring(lua_getparam(1)));
+	snprintf(buf, 256, "lua: %s\n", lua_getstring(lua_getparam(1)));
 	g_stderr->write(buf, strlen(buf));
 	lua_printstack();
 }
diff --git a/engines/grim/lua/lstrlib.cpp b/engines/grim/lua/lstrlib.cpp
index eee8cbff0b7..e4302f1cd9a 100644
--- a/engines/grim/lua/lstrlib.cpp
+++ b/engines/grim/lua/lstrlib.cpp
@@ -454,7 +454,7 @@ static void str_format() {
 				{
 					const char *s = luaL_check_string(arg);
 					buff = luaL_openspace(strlen(s));
-					sprintf(buff, form, s);
+					snprintf(buff, strlen(s), form, s);
 					break;
 				}
 			case 'c':
@@ -464,14 +464,14 @@ static void str_format() {
 			case 'u':
 			case 'x':
 			case 'X':
-				sprintf(buff, form, (int)luaL_check_number(arg));
+				snprintf(buff, 1000, form, (int)luaL_check_number(arg));
 				break;
 			case 'e':
 			case 'E':
 			case 'f':
 			case 'g':
 			case 'G':
-				sprintf(buff, form, luaL_check_number(arg));
+				snprintf(buff, 1000, form, luaL_check_number(arg));
 				break;
 			default:  // also treat cases 'pnLlh'
 				lua_error("invalid option in `format'");
diff --git a/engines/grim/lua/lvm.cpp b/engines/grim/lua/lvm.cpp
index 3e77db4dc17..c5eb2afa9ca 100644
--- a/engines/grim/lua/lvm.cpp
+++ b/engines/grim/lua/lvm.cpp
@@ -60,9 +60,9 @@ int32 luaV_tostring (TObject *obj) { // LUA_NUMBER
 		float f = nvalue(obj);
 		int32 i;
 		if ((float)(-MAX_INT) <= f && f <= (float)MAX_INT && (float)(i = (int32)f) == f)
-			sprintf (s, "%d", (int)i);
+			snprintf (s, 60, "%d", (int)i);
 		else
-			sprintf (s, "%g", (double)nvalue(obj));
+			snprintf (s, 60, "%g", (double)nvalue(obj));
 		tsvalue(obj) = luaS_new(s);
 		ttype(obj) = LUA_T_STRING;
 		return 0;




More information about the Scummvm-git-logs mailing list