CVE-2022-3437 third_party/heimdal: Don't pass NULL pointers to memcpy() in DES unwrap
authorJoseph Sutton <josephsutton@catalyst.net.nz>
Wed, 12 Oct 2022 00:57:42 +0000 (13:57 +1300)
committerJule Anger <janger@samba.org>
Tue, 25 Oct 2022 10:31:34 +0000 (10:31 +0000)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15134

Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
third_party/heimdal/lib/gssapi/krb5/unwrap.c

index e36491b6f94bc1bd8da73857ac8a0ea43381c005..61ca29156a1cd7386f63c919249227f8ff3b0055 100644 (file)
@@ -183,9 +183,10 @@ unwrap_des
   output_message_buffer->value  = malloc(output_message_buffer->length);
   if(output_message_buffer->length != 0 && output_message_buffer->value == NULL)
       return GSS_S_FAILURE;
-  memcpy (output_message_buffer->value,
-         p + 24,
-         output_message_buffer->length);
+  if (output_message_buffer->value != NULL)
+      memcpy (output_message_buffer->value,
+             p + 24,
+             output_message_buffer->length);
   return GSS_S_COMPLETE;
 }
 #endif
@@ -377,9 +378,10 @@ unwrap_des3
   output_message_buffer->value  = malloc(output_message_buffer->length);
   if(output_message_buffer->length != 0 && output_message_buffer->value == NULL)
       return GSS_S_FAILURE;
-  memcpy (output_message_buffer->value,
-         p + 36,
-         output_message_buffer->length);
+  if (output_message_buffer->value != NULL)
+      memcpy (output_message_buffer->value,
+             p + 36,
+             output_message_buffer->length);
   return GSS_S_COMPLETE;
 }