From 32a1f54b9aba958429dd3fd249b62199071ed8aa Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Thu, 4 Dec 2014 14:25:40 -0200 Subject: [PATCH] no more default size for option 'c' in pack/unpack --- lstrlib.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lstrlib.c b/lstrlib.c index 449fbef9..9fd906ae 100644 --- a/lstrlib.c +++ b/lstrlib.c @@ -1,5 +1,5 @@ /* -** $Id: lstrlib.c,v 1.216 2014/11/08 18:12:53 roberto Exp roberto $ +** $Id: lstrlib.c,v 1.217 2014/11/11 19:40:20 roberto Exp roberto $ ** Standard library for string operations and pattern-matching ** See Copyright Notice in lua.h */ @@ -1084,7 +1084,11 @@ static KOption getoption (Header *h, const char **fmt, int *size) { case 'i': *size = getnumlimit(h, fmt, sizeof(int)); return Kint; case 'I': *size = getnumlimit(h, fmt, sizeof(int)); return Kuint; case 's': *size = getnumlimit(h, fmt, sizeof(size_t)); return Kstring; - case 'c': *size = getnum(fmt, 1); return Kchar; + case 'c': + *size = getnum(fmt, -1); + if (*size == -1) + luaL_error(h->L, "missing size for format option 'c'"); + return Kchar; case 'z': return Kzstr; case 'x': *size = 1; return Kpadding; case 'X': return Kpaddalign;