trivial-httpd: Avoid SoupBuffer when there's no content
authorMatthew Barnes <mbarnes@redhat.com>
Mon, 23 Nov 2015 19:29:03 +0000 (14:29 -0500)
committerMatthew Barnes <mbarnes@redhat.com>
Mon, 23 Nov 2015 19:30:31 +0000 (14:30 -0500)
This was supposed to be merged into the previous commit, but I
messed up.

src/ostree/ot-builtin-trivial-httpd.c

index c6a3757d2f78d06b5b6e93d6db229465a88e5cd9..b5fb5d0f6415553a859e9e790fe7800cc5bbe318 100644 (file)
@@ -225,8 +225,7 @@ do_get (OtTrivialHttpd    *self,
       
       if (msg->method == SOUP_METHOD_GET)
         {
-          GMappedFile *mapping;
-          SoupBuffer *buffer;
+          g_autoptr(GMappedFile) mapping = NULL;
           gsize buffer_length, file_size;
           SoupRange *ranges;
           int ranges_length;
@@ -270,12 +269,17 @@ do_get (OtTrivialHttpd    *self,
                 }
               soup_message_headers_free_ranges (msg->request_headers, ranges);
             }
-          buffer = soup_buffer_new_with_owner (g_mapped_file_get_contents (mapping),
-                                               buffer_length,
-                                               mapping, (GDestroyNotify)g_mapped_file_unref);
-          if (buffer->length > 0)
-            soup_message_body_append_buffer (msg->response_body, buffer);
-          soup_buffer_free (buffer);
+          if (buffer_length > 0)
+            {
+              SoupBuffer *buffer;
+
+              buffer = soup_buffer_new_with_owner (g_mapped_file_get_contents (mapping),
+                                                   buffer_length,
+                                                   g_mapped_file_ref (mapping),
+                                                   (GDestroyNotify)g_mapped_file_unref);
+              soup_message_body_append_buffer (msg->response_body, buffer);
+              soup_buffer_free (buffer);
+            }
         }
       else /* msg->method == SOUP_METHOD_HEAD */
         {