Fix a nasty bug in the decryption code.
[bluesky.git] / bluesky / util.c
index 1f21bbf..eab6a14 100644 (file)
@@ -51,6 +51,13 @@ BlueSkyRCStr *bluesky_string_new(gpointer data, gsize len)
     return string;
 }
 
+/* Create a new BlueSkyRCStr from a GString.  The GString is destroyed. */
+BlueSkyRCStr *bluesky_string_new_from_gstring(GString *s)
+{
+    gsize len = s->len;
+    return bluesky_string_new(g_string_free(s, FALSE), len);
+}
+
 void bluesky_string_ref(BlueSkyRCStr *string)
 {
     if (string == NULL)
@@ -102,4 +109,5 @@ void bluesky_string_resize(BlueSkyRCStr *string, gsize len)
         return;
 
     string->data = g_realloc(string->data, len);
+    string->len = len;
 }