Neil Conway <[EMAIL PROTECTED]> writes: > The attached patch fixes a theoretical memory leak in libpq: if the > second malloc() fails due to OOM, the memory returned by the first > (successful) malloc() will be leaked.
Since both allocations are only transient within this routine, there's a simpler more effective solution, which is to only do one malloc in the first place: char *crypt_pwd2; /* need enough space for 2 MD5 hashes */ if (!(crypt_pwd = malloc(2 * (MD5_PASSWD_LEN + 1)))) { fprintf(stderr, libpq_gettext("out of memory\n")); return STATUS_ERROR; } crypt_pwd2 = crypt_pwd + (MD5_PASSWD_LEN + 1); and drop the free(crypt_pwd2) calls. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]