Browse Source

Check argument count of newChainShape

Bart van Strien 11 years ago
parent
commit
e667485f68
1 changed files with 3 additions and 4 deletions
  1. 3 4
      src/modules/physics/box2d/Physics.cpp

+ 3 - 4
src/modules/physics/box2d/Physics.cpp

@@ -133,12 +133,12 @@ int Physics::newPolygonShape(lua_State *L)
 int Physics::newChainShape(lua_State *L)
 {
 	int argc = lua_gettop(L)-1; // first argument is looping
-	int vcount = (int)argc/2;
+	if (argc % 2 != 0)
+		return luaL_error(L, "Number of vertex components must be a multiple of two.");
 
+	int vcount = (int)argc/2;
 	b2ChainShape *s = new b2ChainShape();
-
 	bool loop = luax_toboolean(L, 1);
-
 	b2Vec2 *vecs = new b2Vec2[vcount];
 
 	for (int i = 0; i<vcount; i++)
@@ -166,7 +166,6 @@ int Physics::newChainShape(lua_State *L)
 	delete[] vecs;
 
 	ChainShape *c = new ChainShape(s);
-
 	luax_pushtype(L, "ChainShape", PHYSICS_CHAIN_SHAPE_T, c);
 	return 1;
 }