21 August 2013 It is a defect in program logic of dynamic memory allocation, which causes inability to free the allocated memory after the program has finished using it, and ultimately leading to the failure of the program due to lack of memory.