From fb94e65a640d21b2e1a5c6e79eb3d755ba34c0e6 Mon Sep 17 00:00:00 2001 From: Ryan Lortie Date: Thu, 24 Jun 2010 00:35:10 -0400 Subject: [PATCH] GChecksum: accept NULL pointer with length 0 Several GChecksum functions were incorrectly aborting when passed a NULL data pointer, even if the length parameter was equal to zero. --- glib/gchecksum.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/glib/gchecksum.c b/glib/gchecksum.c index ad9072790..4b9ff94cd 100644 --- a/glib/gchecksum.c +++ b/glib/gchecksum.c @@ -1240,7 +1240,7 @@ g_checksum_update (GChecksum *checksum, gssize length) { g_return_if_fail (checksum != NULL); - g_return_if_fail (data != NULL); + g_return_if_fail (length == 0 || data != NULL); if (length < 0) length = strlen ((const gchar *) data); @@ -1415,7 +1415,7 @@ g_compute_checksum_for_data (GChecksumType checksum_type, gchar *retval; g_return_val_if_fail (IS_VALID_TYPE (checksum_type), NULL); - g_return_val_if_fail (data != NULL, NULL); + g_return_val_if_fail (length == 0 || data != NULL, NULL); checksum = g_checksum_new (checksum_type); if (!checksum) @@ -1449,7 +1449,7 @@ g_compute_checksum_for_string (GChecksumType checksum_type, gssize length) { g_return_val_if_fail (IS_VALID_TYPE (checksum_type), NULL); - g_return_val_if_fail (str != NULL, NULL); + g_return_val_if_fail (length == 0 || str != NULL, NULL); if (length < 0) length = strlen (str);