DESC
Free the memory strdup() allocated
EDESC

Calls to strdup() alloc memory using malloc(), and there's a leak because we
never free() it. This patch fixes this by simply freeing the allocated memory.

Thanks to David Hill for reporting this bug.

