This patch addresses two bugs:

- No parameters to search worked (because character '=' was missing,
  e.g.  delim/ instead of delim=/), and also there were weird truncations
  because prefix can easily be longer than 32 characters.

- If prefix is empty, xmlNodeListGetString returns NULL instead of "",
  thus segfault in strdup. This is not easy to accomplish with Boto,
  but our own httpstor can do it.

Signed-off-by: Pete Zaitcev <[email protected]>

---
 lib/hstor.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

This patch was actually tested on httpstor, I've not switched to hstor
yet, but it seems to apply 100%. There's no sense in fixing httpstor,
I'm going to delete it from tabled soon.

diff --git a/lib/hstor.c b/lib/hstor.c
index 403aca3..5dfff27 100644
--- a/lib/hstor.c
+++ b/lib/hstor.c
@@ -621,13 +621,13 @@ bool hstor_del(struct hstor_client *hstor, const char 
*bucket, const char *key)
 static GString *append_qparam(GString *str, const char *key, const char *val,
                       char *arg_char)
 {
-       char *stmp, s[32];
+       char *stmp;
 
        str = g_string_append(str, arg_char);
        arg_char[0] = '&';
 
-       sprintf(s, "%s=", key);
        str = g_string_append(str, key);
+       str = g_string_append(str, "=");
 
        stmp = huri_field_escape(strdup(val), QUERY_ESCAPE_MASK);
        str = g_string_append(str, stmp);
@@ -868,7 +868,7 @@ struct hstor_keylist *hstor_keys(struct hstor_client 
*hstor, const char *bucket,
                }
                else if (!_strcmp(node->name, "Prefix")) {
                        xs = xmlNodeListGetString(doc, node->children, 1);
-                       keylist->prefix = strdup((char *)xs);
+                       keylist->prefix = strdup(xs? (char *)xs: "");
                        xmlFree(xs);
                }
                else if (!_strcmp(node->name, "Marker")) {
--
To unsubscribe from this list: send the line "unsubscribe hail-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to