aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--spec/util_ringbuffer_spec.lua5
-rw-r--r--util-src/ringbuffer.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/spec/util_ringbuffer_spec.lua b/spec/util_ringbuffer_spec.lua
index ccb5493a..9512bfd4 100644
--- a/spec/util_ringbuffer_spec.lua
+++ b/spec/util_ringbuffer_spec.lua
@@ -12,6 +12,11 @@ describe("util.ringbuffer", function ()
rb.new(0);
end);
end);
+ it("won't create a negatively sized buffer", function ()
+ assert.has_error(function ()
+ rb.new(-1);
+ end);
+ end);
end);
describe(":write", function ()
local b = rb.new();
diff --git a/util-src/ringbuffer.c b/util-src/ringbuffer.c
index f4a51cc9..e15b66a6 100644
--- a/util-src/ringbuffer.c
+++ b/util-src/ringbuffer.c
@@ -197,7 +197,7 @@ static int rb_free(lua_State *L) {
}
static int rb_new(lua_State *L) {
- size_t size = luaL_optinteger(L, 1, sysconf(_SC_PAGESIZE));
+ lua_Integer size = luaL_optinteger(L, 1, sysconf(_SC_PAGESIZE));
luaL_argcheck(L, size > 0, 1, "positive integer expected");
ringbuffer *b = lua_newuserdata(L, sizeof(ringbuffer) + size);