lua-users home
lua-l archive

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


Yes the strlen was left in there as a test. To demonstrate.

And I let the lua func "size_t len = 0;" take care of it. But regardless it doesn't work.

On 8/15/2012 8:10 AM, Coda Highland wrote:
On Tue, Aug 14, 2012 at 3:29 PM, Digital <forumme5487@live.com> wrote:
 From within lua

//------------------------------
somevar = require "modulename";
data = "binary data";
somevar.testfunc(data);
//-------------------------------

It works for anything normal like string "abc123" but as soon as I add
binary data it stops functioning.
Why are you using string functions in C? strlen is going to break on
embedded nulls, for example. If you're storing, say, numbers as 32-bit
big-endian values, you're going to hit an embedded null very early on
and your C code will fail.

Your Lua code is probably fine. Just use the Lua C API to find the
length of the binary data (Lua uses length-tagged strings, not
null-terminated) and deal with it that way.

/s/ Adam