Accept -1 for the data length if the data is a null-terminated string. Bug
authorMurray Cumming <murrayc@murrayc.com>
Mon, 21 Jan 2008 13:11:13 +0000 (13:11 +0000)
committerMurray Cumming <murrayc@src.gnome.org>
Mon, 21 Jan 2008 13:11:13 +0000 (13:11 +0000)
2008-01-20  Murray Cumming  <murrayc@murrayc.com>

        * glib/gchecksum.c: (g_checksum_update): Accept -1 for the data
        length if the data is a null-terminated string. Bug #510855.

svn path=/trunk/; revision=6340

ChangeLog
glib/gchecksum.c

index 75b8642..4524b2d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-01-20  Murray Cumming  <murrayc@murrayc.com>
+
+       * glib/gchecksum.c: (g_checksum_update): Accept -1 for the data 
+       length if the data is a null-terminated string. Bug #510855.
+
 2008-01-21  Alexander Larsson  <alexl@redhat.com>
 
         * configure.in:
index c7108ad..71ee2f7 100644 (file)
@@ -1187,7 +1187,7 @@ g_checksum_free (GChecksum *checksum)
  * g_checksum_update:
  * @checksum: a #GChecksum
  * @data: buffer used to compute the checksum
- * @length: size of the buffer
+ * @length: size of the buffer, or -1 if it is a null-terminated string.
  *
  * Feeds @data into an existing #GChecksum. The checksum must still be
  * open, that is g_checksum_get_string() or g_checksum_get_digest() must
@@ -1203,6 +1203,9 @@ g_checksum_update (GChecksum    *checksum,
   g_return_if_fail (checksum != NULL);
   g_return_if_fail (data != NULL);
 
+  if (length < 0)
+    length = strlen (data);
+
   if (checksum->digest_str)
     {
       g_warning ("The checksum `%s' has been closed and cannot be updated "
@@ -1387,7 +1390,7 @@ g_compute_checksum_for_data (GChecksumType  checksum_type,
  * g_compute_checksum_for_string:
  * @checksum_type: a #GChecksumType
  * @str: the string to compute the checksum of
- * @length: the length of the string, or -1
+ * @length: the length of the string, or -1 if the string is null-terminated.
  *
  * Computes the checksum of a string.
  *