souphttpsrc: don't update the size on error
authorMichael Olbrich <m.olbrich@pengutronix.de>
Sun, 10 Nov 2019 20:19:09 +0000 (21:19 +0100)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 10 Jul 2020 11:41:55 +0000 (11:41 +0000)
Any data corresponding length in the message is not part of the requested
file.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/385>

ext/soup/gstsouphttpsrc.c

index e8c63de..6547291 100644 (file)
@@ -1173,8 +1173,9 @@ gst_soup_http_src_got_headers (GstSoupHTTPSrc * src, SoupMessage * msg)
   gst_event_unref (http_headers_event);
 
   /* Parse Content-Length. */
-  if (soup_message_headers_get_encoding (msg->response_headers) ==
-      SOUP_ENCODING_CONTENT_LENGTH) {
+  if (SOUP_STATUS_IS_SUCCESSFUL (msg->status_code) &&
+      (soup_message_headers_get_encoding (msg->response_headers) ==
+          SOUP_ENCODING_CONTENT_LENGTH)) {
     newsize = src->request_position +
         soup_message_headers_get_content_length (msg->response_headers);
     if (!src->have_size || (src->content_size != newsize)) {