Explorar o código

fix a memory leak in ws2812_buffer_shift by freeing the same amount of bytes we allocated before

Firenox89 %!s(int64=4) %!d(string=hai) anos
pai
achega
0555a4c689
Modificáronse 1 ficheiros con 2 adicións e 1 borrados
  1. 2 1
      app/modules/ws2812.c

+ 2 - 1
app/modules/ws2812.c

@@ -278,7 +278,8 @@ int ws2812_buffer_shift(lua_State* L, ws2812_buffer * buffer, int shiftValue, un
   ws2812_buffer_shift_prepare* prepare = ws2812_buffer_get_shift_prepare(L, buffer, shiftValue, shift_type, pos_start, pos_end);
   ws2812_buffer_shift_prepared(prepare);
   // Free memory
-  luaM_free(L, prepare);
+  luaM_freemem(L, prepare, sizeof(ws2812_buffer_shift_prepare) + prepare->shift_len);
+
   return 0;
 }