From 54ecf03f9ed055c8a84475eee0d5a50bb16eeb61 Mon Sep 17 00:00:00 2001 From: Jaakko Keränen Date: Wed, 2 Dec 2020 15:07:41 +0200 Subject: GmRequest: Don't remain locked while running MIME hooks --- src/gmrequest.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/gmrequest.c') diff --git a/src/gmrequest.c b/src/gmrequest.c index 572e6a5c..a1284078 100644 --- a/src/gmrequest.c +++ b/src/gmrequest.c @@ -260,18 +260,20 @@ static void requestFinished_GmRequest_(iGmRequest *d, iTlsRequest *req) { set_String(&d->resp->meta, errorMessage_TlsRequest(req)); } checkServerCertificate_GmRequest_(d); + unlock_Mutex(d->mtx); /* Check for mimehooks. */ - if (d->isRespFiltered && d->state == finished_GmRequestState) { + if (d->isRespFiltered && d->state == finished_GmRequestState) { iBlock *xbody = tryFilter_MimeHooks(mimeHooks_App(), &d->resp->meta, &d->resp->body); if (xbody) { + lock_Mutex(d->mtx); clear_String(&d->resp->meta); clear_Block(&d->resp->body); d->state = receivingHeader_GmRequestState; processIncomingData_GmRequest_(d, xbody); d->state = finished_GmRequestState; + unlock_Mutex(d->mtx); } } - unlock_Mutex(d->mtx); iNotifyAudience(d, finished, GmRequestFinished); } -- cgit v1.2.3