summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--methods/https.cc6
-rw-r--r--methods/https.h3
2 files changed, 8 insertions, 1 deletions
diff --git a/methods/https.cc b/methods/https.cc
index e0348ab58..cacd8a6bc 100644
--- a/methods/https.cc
+++ b/methods/https.cc
@@ -81,6 +81,12 @@ HttpsMethod::write_data(void *buffer, size_t size, size_t nmemb, void *userp)
if(me->File->Write(buffer, size*nmemb) != true)
return false;
+ me->TotalWritten += size*nmemb;
+ if(me->TotalWritten > me->Queue->ExpectedSize)
+ return _error->Error("Writing more data than expected (%llu > %llu)",
+ me->TotalWritten, me->Queue->ExpectedSize);
+
+
return size*nmemb;
}
diff --git a/methods/https.h b/methods/https.h
index faac8a3cd..2335559fb 100644
--- a/methods/https.h
+++ b/methods/https.h
@@ -66,11 +66,12 @@ class HttpsMethod : public pkgAcqMethod
CURL *curl;
FetchResult Res;
HttpsServerState *Server;
+ unsigned long long TotalWritten;
public:
FileFd *File;
- HttpsMethod() : pkgAcqMethod("1.2",Pipeline | SendConfig), File(NULL)
+ HttpsMethod() : pkgAcqMethod("1.2",Pipeline | SendConfig), TotalWritten(0), File(NULL)
{
File = 0;
curl = curl_easy_init();