[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: How to pass arguments to argv function effectively in Lua C API
- From: Alexander Gladysh <agladysh@...>
- Date: Fri, 25 Mar 2011 01:44:09 +0300
On Fri, Mar 25, 2011 at 01:35, Peter Cawley <lua@corsix.org> wrote:
> On Thu, Mar 24, 2011 at 10:28 PM, Daurnimator <quae@daurnimator.com> wrote:
>> Is there something wrong with
>> int params = lua_gettop(L);
>> char **argv = malloc(params);
>> int i;
>> for (i=1;i<=params;i++) {
>> argv[i-1]=luaL_checkstring(L,i);
>> }
> Yes:
> 1. The call to malloc may fail and return NULL, thus causing invalid
> memory access on "argv[i-1]".
> 2. The calls to luaL_checkstring may throw errors, thus leaking the
> memory allocated for "argv".
3. It bypasses allocator that Lua state uses.
Alexander.