lua-users home
lua-l archive

two invalid pointer conversions

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Hi,
while updating lua5.3 for next Debian stable and I've encountered two
invalid pointer conversions that are triggered by more strict build
defaults in Debian (and in Debian package). I have attached patch to fix
those issues.
Cheers,
-- 
Ondřej Surý <ondrej@sury.org>
Knot DNS (https://www.knot-dns.cz/) – a high-performance DNS server
Knot Resolver (https://www.knot-resolver.cz/) – secure, privacy-aware,
fast DNS(SEC) resolver
Vše pro chleba (https://vseprochleba.cz) – Mouky ze mlýna a potřeby pro
pečení chleba všeho druhu
From: =?utf-8?q?Ond=C5=99ej_Sur=C3=BD?= <ondrej@sury.org>
Date: 2016年12月19日 16:16:26 +0100
Subject: Fix invalid pointer conversions
---
 src/lobject.c | 2 +-
 src/lstrlib.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/lobject.c b/src/lobject.c
index a44b385..9fe441f 100644
--- a/src/lobject.c
+++ b/src/lobject.c
@@ -280,7 +280,7 @@ static const char *l_str2d (const char *s, lua_Number *result) {
 endptr = l_str2dloc(s, result, mode); /* try to convert */
 if (endptr == NULL) { /* failed? may be a different locale */
 char buff[L_MAXLENNUM + 1];
- char *pdot = strchr(s, '.');
+ const char *pdot = strchr(s, '.');
 if (strlen(s) > L_MAXLENNUM || pdot == NULL)
 return NULL; /* string too long or no dot; fail */
 strcpy(buff, s); /* copy string to buffer */
diff --git a/src/lstrlib.c b/src/lstrlib.c
index 12264f8..0676cff 100644
--- a/src/lstrlib.c
+++ b/src/lstrlib.c
@@ -933,7 +933,7 @@ static void addquoted (luaL_Buffer *b, const char *s, size_t len) {
 static void checkdp (char *buff, int nb) {
 if (memchr(buff, '.', nb) == NULL) { /* no dot? */
 char point = lua_getlocaledecpoint(); /* try locale point */
- char *ppoint = memchr(buff, point, nb);
+ char *ppoint = (char *)memchr(buff, point, nb);
 if (ppoint) *ppoint = '.'; /* change it to a dot */
 }
 }

AltStyle によって変換されたページ (->オリジナル) /