]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Fix gss_pseudo_random leak on zero length output
authorGreg Hudson <ghudson@mit.edu>
Sat, 18 Jan 2014 18:03:32 +0000 (13:03 -0500)
committerGreg Hudson <ghudson@mit.edu>
Sat, 18 Jan 2014 18:03:32 +0000 (13:03 -0500)
Nobody is likely to ever ask for zero bytes of output from
gss_pseudo_random, but if they do, just return an empty buffer without
allocating.  Otherwise we leak memory because gss_release_buffer
doesn't do anything to buffers with length 0.

ticket: 7838 (new)

src/lib/gssapi/krb5/prf.c

index a0fbcdab0fa67db3180f8d65187d12a1f4a96813..bfca89b4c6ed5028e16d48de9af577a9cfd677b9 100644 (file)
@@ -81,6 +81,9 @@ krb5_gss_pseudo_random(OM_uint32 *minor_status,
         goto cleanup;
     }
 
+    if (desired_output_len == 0)
+        return GSS_S_COMPLETE;
+
     prf_out->value = k5alloc(desired_output_len, &code);
     if (prf_out->value == NULL) {
         code = KG_INPUT_TOO_LONG;