Явный malloc в программе - только один, выполняется один раз. Утечек памяти нет. Но ps aux показывает, что программа занимает в памяти 29 Мбайт:
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
....
pacify 6100 0.0 0.7 113924 29180 pts/1 S+ 19:47 0:00 ./prog input.jpg
Как узнать - на что расходуется память?
Сколько уходит под кучу, сколько - под стек, сколько - под код.
Бинарник программы занимает 7 килобайт, тянет за собой OpenGL, Freetype, SQLite3, FreeImage (небольшая программа для обработки изображений).