From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 6748C4D013 for ; Fri, 14 Feb 2025 17:09:54 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 06E4968BFB2; Fri, 14 Feb 2025 19:09:51 +0200 (EET) Received: from mail-yw1-f178.google.com (mail-yw1-f178.google.com [209.85.128.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9E18D68BE9F for ; Fri, 14 Feb 2025 19:09:45 +0200 (EET) Received: by mail-yw1-f178.google.com with SMTP id 00721157ae682-6fb0de4ecd4so20567417b3.3 for ; Fri, 14 Feb 2025 09:09:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739552983; x=1740157783; darn=ffmpeg.org; h=content-transfer-encoding:in-reply-to:content-language:references :to:from:subject:user-agent:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=U4YsdCWcsIHzcEF9l4qMdScI/6kNEyMYe/J39xmSsSw=; b=U5Nwp3Yu0uCCNcAkAFYfcvuV//PYhkuVQGVubvCdafGCmJxg9FM0OyJk63aRge/t3s O/tDU2mOyIBVW2EMXNv5sVNNRKhNOxJR2nN7G9mII9n/bIrT6lAMXHpmQzPxhPyBlyIB uPHihzAnQzJ2TrO4bHgEvtd1ovTmEj9Z0qHBW1C+3ukbtDga5MgX84veRgoA89gmczif 68b9+jRlnylHSc/he6j00d6UYR21RPcbBSmalAWniIgnxn+n2wOGAiI+hkYvG0dFw80i mTBx8CRZxoCMw4O7hOzTaTXxgTPmBPhcKvOvZjBoPbB0n/76GjoGp0sdJTHNvmZUF0V+ fvIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739552983; x=1740157783; h=content-transfer-encoding:in-reply-to:content-language:references :to:from:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=U4YsdCWcsIHzcEF9l4qMdScI/6kNEyMYe/J39xmSsSw=; b=UfEO+DKiAGIeBmRiR8iV6udIsOPVd2WXFCYT7/hOyXZrByBdvd05uxvjOGI6b/LQpN nR0sA5SYa2paedyfgyG6e6Acdpq6iJnJBRztd9U4x/qOdinZLGvCa4bxtosM2YTyFpg4 I6a4DnLzdcmN+UuiC92SyA+38AJdgvPxkRLxqosroBL5UNPjCnKHJ3oi1snYxK9k/tBV 73fEVtiSkH/o08ObnIkFKwDigyE/gSFJddPtTphvT44YJS3s5lNE0g5G5tYnQNUmZa82 z3Oa8I9kQYKWYsoqm0yd6HCa9+tYN+G7T+PsdpsMZ33kwiNdEnl+5P7seqMkII1mw1zN 7Ylg== X-Gm-Message-State: AOJu0Yz3XxT5zGgxBSELP9B11yjZ1rOxFH7SN1xtquWmp8WIgszwjPN5 1G8fuL14tsPheGcpEVDtgXqUbKmXPPc9w7uW/58T2rrno1i4c7RBrGX/2Ly8 X-Gm-Gg: ASbGncuYnkt97WTdHg1O4XL3Uzs+0xInfKDzELxzH84ZaCHLDDVF0GunBmUeS38LTN5 +EOoaa2gbE5mWA2NWWp4ARAEnO/us2uINgfB2gj/Gx37HwsbIE9Lt+modL8GL4q0i/z8C6HzCb2 ppumHFmDcAqLKU49YumykU9Hd7guzOJGd5e7zxft7WFXTF6GfZ5vF3mgEkPSz8Vd9KJf1I3mfJB f3zrh8lJ0ie7T6YDAzLpFGBPGV56CqDWzeo8tE2R48uG+u9SqN6kOU2aIyBLljzBjD6oHSf/tv0 Lw5sy2NTasDT/y/UkF3YckxKD298cfbWn91bHl3Ue2Pbmmnskpk+Qo5qsXudQSI4OScrEgmepy7 7ihc= X-Google-Smtp-Source: AGHT+IFQVKZ0gKN59mn/G+NEklgBJxW3W0AmeXfb/SekFX+ej1OtqfC9+sZReRNFcy5LfwaEaoCq3w== X-Received: by 2002:a05:690c:46c4:b0:6f9:9e25:e992 with SMTP id 00721157ae682-6fb5827b967mr1671007b3.10.1739552983404; Fri, 14 Feb 2025 09:09:43 -0800 (PST) Received: from [192.168.50.218] (108-65-109-112.lightspeed.tukrga.sbcglobal.net. [108.65.109.112]) by smtp.gmail.com with ESMTPSA id 00721157ae682-6fb361dbba8sm8341197b3.124.2025.02.14.09.09.42 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 14 Feb 2025 09:09:42 -0800 (PST) Message-ID: <5d888af5-6108-4ac9-b599-06309a8586d4@gmail.com> Date: Fri, 14 Feb 2025 12:09:42 -0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta From: Rashad Tatum To: ffmpeg-devel@ffmpeg.org References: <4bc51275-6577-433d-ac02-fb034d17142f@gmail.com> Content-Language: en-US In-Reply-To: <4bc51275-6577-433d-ac02-fb034d17142f@gmail.com> Subject: [FFmpeg-devel] [PATCH 2/2] libavformat/rtsp: Free memory allocated for temporary variables while processing sdp info X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: U2lnbmVkLW9mZi1ieTogUmFzaGFkIFRhdHVtIDx0YXR1bS5yYXNoYWRAZ21haWwuY29tPgotLS0K bGliYXZmb3JtYXQvcnRzcC5jIHwgMiArKwoxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvcnRzcC5jIGIvbGliYXZmb3JtYXQvcnRzcC5jCmlu ZGV4IDBjNjVmOGQxYTQuLmRhNzMzOTM4YmMgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L3J0c3Au YworKysgYi9saWJhdmZvcm1hdC9ydHNwLmMKQEAgLTQ3OCw2ICs0NzgsNyBAQCBzdGF0aWMgdm9p ZCBzZHBfcGFyc2VfbGluZShBVkZvcm1hdENvbnRleHQgKnMsIApTRFBQYXJzZVN0YXRlICpzMSwK c2RwX2lwX3N0cik7Cn0KKyBhdl9mcmVlcChzZHBfaXBfc3RyKTsKYnJlYWs7CmNhc2UgJ3MnOgph dl9kaWN0X3NldCgmcy0+bWV0YWRhdGEsICJ0aXRsZSIsIHAsIDApOwpAQCAtNzAyLDYgKzcwMyw3 IEBAIHN0YXRpYyB2b2lkIHNkcF9wYXJzZV9saW5lKEFWRm9ybWF0Q29udGV4dCAqcywgClNEUFBh cnNlU3RhdGUgKnMxLAp9Cn0KfQorIGF2X2ZyZWVwKGRlc3RfYWRkcik7Cn0gZWxzZSB7CmlmIChy dC0+c2VydmVyX3R5cGUgPT0gUlRTUF9TRVJWRVJfV01TKQpmZl93bXNfcGFyc2Vfc2RwX2FfbGlu ZShzLCBwKTsKLS0gCjIuNDguMQoKCgpPbiAyLzE0LzI1IDEyOjA4IFBNLCBSYXNoYWQgVGF0dW0g d3JvdGU6Cj4gYnkgZmlyc3QgY2hhbmdpbmcgdGhlIFJUU1BTb3VyY2UgdG8gdHJhY2sgdGhlIGRl c3RpbmF0aW9uIGFkZHJlc3MKPiBvYnRhaW5lZCBmcm9tIHRoZSBzb3VyY2UgZmlsdGVyLiBGb3Ig ZWFjaCBSVFNQU3RyZWFtLCBvbmx5IGFkZCB0aGUgc291cmNlCj4gZmlsdGVyIGZyb20gdGhlIHNk cCBpZiBzZHBfaXAgc3RyaW5nIG1hdGNoZXMgc291cmNlLWZpbHRlcidzIGRlc3RpbmF0aW9uCj4g YWRkcmVzcy4KPgo+IEJlZm9yZSBpc3N1aW5nIHRoZSBzZXR1cCByZXF1ZXN0LCBjaGFuZ2UgdGhl IGxvd2VyX3RyYW5zcG9ydCB0bwo+IG11bHRpY2FzdCBpZiB0aGUgc2RwX2lwIGlzIGEgbXVsdGlj YXN0IGFkZHJlc3MuCj4KPiBDaGFuZ2UgdGhlIG11bHRpY2FzdCBjYXNlIHRvIGFwcGVuZCBzb3Vy Y2VzIChmcm9tIHRoZSBzb3VyY2UtZmlsdGVyKSB0bwo+IHRoZSBydHAgdXJsIHRvIG1ha2UgdGhl IHNvdXJjZSBzcGVjaWZpYyBtdWx0aWNhc3Qgam9pbiB3b3JrLgo+Cj4gU2lnbmVkLW9mZi1ieTog UmFzaGFkIFRhdHVtIDx0YXR1bS5yYXNoYWRAZ21haWwuY29tPgo+IC0tLQo+IMKgbGliYXZmb3Jt YXQvcnRzcC5jIHwgODggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLQo+IMKgbGliYXZmb3JtYXQvcnRzcC5oIHzCoCAzICstCj4gwqAyIGZpbGVzIGNoYW5nZWQs IDYyIGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2xpYmF2 Zm9ybWF0L3J0c3AuYyBiL2xpYmF2Zm9ybWF0L3J0c3AuYwo+IGluZGV4IDVlYTQ3MWI0MGMuLjBj NjVmOGQxYTQgMTAwNjQ0Cj4gLS0tIGEvbGliYXZmb3JtYXQvcnRzcC5jCj4gKysrIGIvbGliYXZm b3JtYXQvcnRzcC5jCj4gQEAgLTM4OSwxNiArMzg5LDE4IEBAIHR5cGVkZWYgc3RydWN0IFNEUFBh cnNlU3RhdGUgewo+IMKgfSBTRFBQYXJzZVN0YXRlOwo+IMKgIHN0YXRpYyB2b2lkIGNvcHlfZGVm YXVsdF9zb3VyY2VfYWRkcnMoc3RydWN0IFJUU1BTb3VyY2UgKiphZGRycywgaW50IAo+IGNvdW50 LAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgUlRTUFNvdXJjZSAqKipkZXN0LCBpbnQgCj4g KmRlc3RfY291bnQpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBSVFNQU291cmNlICoqKmRl c3QsIGludCAKPiAqZGVzdF9jb3VudCwgY29uc3QgY2hhciogc2RwX2lwX3N0cikKPiDCoHsKPiDC oMKgwqDCoCBSVFNQU291cmNlICpydHNwX3NyYywgKnJ0c3Bfc3JjMjsKPiDCoMKgwqDCoCBpbnQg aTsKPiDCoMKgwqDCoCBmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewo+IMKgwqDCoMKgwqDC oMKgwqAgcnRzcF9zcmMgPSBhZGRyc1tpXTsKPiAtwqDCoMKgwqDCoMKgwqAgcnRzcF9zcmMyID0g YXZfbWVtZHVwKHJ0c3Bfc3JjLCBzaXplb2YoKnJ0c3Bfc3JjKSk7Cj4gLcKgwqDCoMKgwqDCoMKg IGlmICghcnRzcF9zcmMyKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRpbnVlOwo+IC3C oMKgwqDCoMKgwqDCoCBkeW5hcnJheV9hZGQoZGVzdCwgZGVzdF9jb3VudCwgcnRzcF9zcmMyKTsK PiArwqDCoMKgwqDCoMKgwqAgaWYgKHN0cmNtcChydHNwX3NyYy0+ZGVzdF9hZGRyLCBzZHBfaXBf c3RyKSA9PSAwKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcnRzcF9zcmMyID0gYXZfbWVt ZHVwKHJ0c3Bfc3JjLCBzaXplb2YoKnJ0c3Bfc3JjKSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgaWYgKCFydHNwX3NyYzIpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250 aW51ZTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkeW5hcnJheV9hZGQoZGVzdCwgZGVzdF9j b3VudCwgcnRzcF9zcmMyKTsKPiArwqDCoMKgwqDCoMKgwqAgfQo+IMKgwqDCoMKgIH0KPiDCoH0K PiDCoEBAIC00MjMsNyArNDI1LDcgQEAgc3RhdGljIHZvaWQgc2RwX3BhcnNlX2xpbmUoQVZGb3Jt YXRDb250ZXh0ICpzLCAKPiBTRFBQYXJzZVN0YXRlICpzMSwKPiDCoHsKPiDCoMKgwqDCoCBSVFNQ U3RhdGUgKnJ0ID0gcy0+cHJpdl9kYXRhOwo+IMKgwqDCoMKgIGNoYXIgYnVmMVs2NF0sIHN0X3R5 cGVbNjRdOwo+IC3CoMKgwqAgY29uc3QgY2hhciAqcDsKPiArwqDCoMKgIGNvbnN0IGNoYXIgKnAs ICpzZHBfaXBfc3RyLCAqZGVzdF9hZGRyOwo+IMKgwqDCoMKgIGVudW0gQVZNZWRpYVR5cGUgY29k ZWNfdHlwZTsKPiDCoMKgwqDCoCBpbnQgcGF5bG9hZF90eXBlOwo+IMKgwqDCoMKgIEFWU3RyZWFt ICpzdDsKPiBAQCAtNDQ4LDYgKzQ1MCw4IEBAIHN0YXRpYyB2b2lkIHNkcF9wYXJzZV9saW5lKEFW Rm9ybWF0Q29udGV4dCAqcywgCj4gU0RQUGFyc2VTdGF0ZSAqczEsCj4gwqDCoMKgwqDCoMKgwqDC oCBnZXRfd29yZF9zZXAoYnVmMSwgc2l6ZW9mKGJ1ZjEpLCAiLyIsICZwKTsKPiDCoMKgwqDCoMKg wqDCoMKgIGlmIChnZXRfc29ja2FkZHIocywgYnVmMSwgJnNkcF9pcCkpCj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHJldHVybjsKPiArCj4gK8KgwqDCoMKgwqDCoMKgIHNkcF9pcF9zdHIgPSBh dl9zdHJkdXAoYnVmMSk7Cj4gwqDCoMKgwqDCoMKgwqDCoCB0dGwgPSAxNjsKPiDCoMKgwqDCoMKg wqDCoMKgIGlmICgqcCA9PSAnLycpIHsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcCsrOwo+ IEBAIC00NjEsNiArNDY1LDE4IEBAIHN0YXRpYyB2b2lkIHNkcF9wYXJzZV9saW5lKEFWRm9ybWF0 Q29udGV4dCAqcywgCj4gU0RQUGFyc2VTdGF0ZSAqczEsCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHJ0c3Bfc3QgPSBydC0+cnRzcF9zdHJlYW1zW3J0LT5uYl9ydHNwX3N0cmVhbXMgLSAxXTsK PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcnRzcF9zdC0+c2RwX2lwID0gc2RwX2lwOwo+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBydHNwX3N0LT5zZHBfdHRsID0gdHRsOwo+ICsKPiArIGNv cHlfZGVmYXVsdF9zb3VyY2VfYWRkcnMoczEtPmRlZmF1bHRfaW5jbHVkZV9zb3VyY2VfYWRkcnMs Cj4gKyBzMS0+bmJfZGVmYXVsdF9pbmNsdWRlX3NvdXJjZV9hZGRycywKPiArICZydHNwX3N0LT5p bmNsdWRlX3NvdXJjZV9hZGRycywKPiArICZydHNwX3N0LT5uYl9pbmNsdWRlX3NvdXJjZV9hZGRy cywKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNkcF9pcF9zdHIpOwo+ICsg Y29weV9kZWZhdWx0X3NvdXJjZV9hZGRycyhzMS0+ZGVmYXVsdF9leGNsdWRlX3NvdXJjZV9hZGRy cywKPiArIHMxLT5uYl9kZWZhdWx0X2V4Y2x1ZGVfc291cmNlX2FkZHJzLAo+ICsgJnJ0c3Bfc3Qt PmV4Y2x1ZGVfc291cmNlX2FkZHJzLAo+ICsgJnJ0c3Bfc3QtPm5iX2V4Y2x1ZGVfc291cmNlX2Fk ZHJzLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2RwX2lwX3N0cik7Cj4g Kwo+IMKgwqDCoMKgwqDCoMKgwqAgfQo+IMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7Cj4gwqDCoMKg wqAgY2FzZSAncyc6Cj4gQEAgLTUwNCwxNSArNTIwLDYgQEAgc3RhdGljIHZvaWQgc2RwX3BhcnNl X2xpbmUoQVZGb3JtYXRDb250ZXh0ICpzLCAKPiBTRFBQYXJzZVN0YXRlICpzMSwKPiDCoMKgwqDC oMKgwqDCoMKgIHJ0c3Bfc3QtPnNkcF9pcCA9IHMxLT5kZWZhdWx0X2lwOwo+IMKgwqDCoMKgwqDC oMKgwqAgcnRzcF9zdC0+c2RwX3R0bCA9IHMxLT5kZWZhdWx0X3R0bDsKPiDCoC0gY29weV9kZWZh dWx0X3NvdXJjZV9hZGRycyhzMS0+ZGVmYXVsdF9pbmNsdWRlX3NvdXJjZV9hZGRycywKPiAtIHMx LT5uYl9kZWZhdWx0X2luY2x1ZGVfc291cmNlX2FkZHJzLAo+IC0gJnJ0c3Bfc3QtPmluY2x1ZGVf c291cmNlX2FkZHJzLAo+IC0gJnJ0c3Bfc3QtPm5iX2luY2x1ZGVfc291cmNlX2FkZHJzKTsKPiAt IGNvcHlfZGVmYXVsdF9zb3VyY2VfYWRkcnMoczEtPmRlZmF1bHRfZXhjbHVkZV9zb3VyY2VfYWRk cnMsCj4gLSBzMS0+bmJfZGVmYXVsdF9leGNsdWRlX3NvdXJjZV9hZGRycywKPiAtICZydHNwX3N0 LT5leGNsdWRlX3NvdXJjZV9hZGRycywKPiAtICZydHNwX3N0LT5uYl9leGNsdWRlX3NvdXJjZV9h ZGRycyk7Cj4gLQo+IMKgwqDCoMKgwqDCoMKgwqAgZ2V0X3dvcmQoYnVmMSwgc2l6ZW9mKGJ1ZjEp LCAmcCk7IC8qIHBvcnQgKi8KPiDCoMKgwqDCoMKgwqDCoMKgIHJ0c3Bfc3QtPnNkcF9wb3J0ID0g YXRvaShidWYxKTsKPiDCoEBAIC02NzIsMTEgKzY3OSwxMyBAQCBzdGF0aWMgdm9pZCBzZHBfcGFy c2VfbGluZShBVkZvcm1hdENvbnRleHQgKnMsIAo+IFNEUFBhcnNlU3RhdGUgKnMxLAo+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAvLyBub3QgY2hlY2tpbmcgdGhhdCB0aGUgZGVzdGluYXRpb24g YWRkcmVzcyBhY3R1YWxseSAKPiBtYXRjaGVzIG9yIGlzIHdpbGRjYXJkCj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGdldF93b3JkKGJ1ZjEsIHNpemVvZihidWYxKSwgJnApOwo+IMKgK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqAgZGVzdF9hZGRyID0gYXZfc3RyZHVwKGJ1ZjEpOwo+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB3aGlsZSAoKnAgIT0gJ1wwJykgewo+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHJ0c3Bfc3JjID0gYXZfbWFsbG9jeihzaXplb2YoKnJ0c3Bfc3JjKSk7 Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCFydHNwX3NyYykKPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybjsKPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdldF93b3JkKHJ0c3Bfc3JjLT5hZGRyLCBzaXplb2YocnRz cF9zcmMtPmFkZHIpLCAmcCk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9z dHJsY3B5KHJ0c3Bfc3JjLT5kZXN0X2FkZHIsIGRlc3RfYWRkciwgCj4gc2l6ZW9mKHJ0c3Bfc3Jj LT5kZXN0X2FkZHIpKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdldF93b3Jk KHJ0c3Bfc3JjLT5zcmNfYWRkciwgCj4gc2l6ZW9mKHJ0c3Bfc3JjLT5zcmNfYWRkciksICZwKTsK PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoZXhjbHVkZSkgewo+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHMtPm5iX3N0cmVhbXMgPT0g MCkgewo+Cj4gZHluYXJyYXlfYWRkKCZzMS0+ZGVmYXVsdF9leGNsdWRlX3NvdXJjZV9hZGRycywg Cj4gJnMxLT5uYl9kZWZhdWx0X2V4Y2x1ZGVfc291cmNlX2FkZHJzLCBydHNwX3NyYyk7Cj4gQEAg LTg1OSwxMCArODY4LDExIEBAIGludCBmZl9ydHNwX29wZW5fdHJhbnNwb3J0X2N0eChBVkZvcm1h dENvbnRleHQgCj4gKnMsIFJUU1BTdHJlYW0gKnJ0c3Bfc3QpCj4gwqDCoMKgwqDCoMKgwqDCoCBy dHNwX3N0LT50cmFuc3BvcnRfcHJpdiA9IGZmX3JkdF9wYXJzZV9vcGVuKHMsIHN0LT5pbmRleCwK Pgo+IHJ0c3Bfc3QtPmR5bmFtaWNfcHJvdG9jb2xfY29udGV4dCwKPiBydHNwX3N0LT5keW5hbWlj X2hhbmRsZXIpOwo+IC3CoMKgwqAgZWxzZSBpZiAoQ09ORklHX1JUUERFQykKPiArwqDCoMKgIGVs c2UgaWYgKENPTkZJR19SVFBERUMpIHsKPiDCoMKgwqDCoMKgwqDCoMKgIHJ0c3Bfc3QtPnRyYW5z cG9ydF9wcml2ID0gZmZfcnRwX3BhcnNlX29wZW4ocywgc3QsCj4gcnRzcF9zdC0+c2RwX3BheWxv YWRfdHlwZSwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlb3JkZXJpbmdfcXVldWVfc2l6 ZSk7Cj4gK8KgwqDCoCB9Cj4gwqDCoMKgwqDCoCBpZiAoIXJ0c3Bfc3QtPnRyYW5zcG9ydF9wcml2 KSB7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4gQEAgLTE0 NTIsNiArMTQ2MiwxOCBAQCByZXRyeToKPiDCoMKgwqDCoCByZXR1cm4gMDsKPiDCoH0KPiDCoCtz dGF0aWMgdm9pZCBhcHBlbmRfc291cmNlX2FkZHJzKGNoYXIgKmJ1ZiwgaW50IHNpemUsIGNvbnN0 IGNoYXIgKm5hbWUsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCBjb3VudCwgc3RydWN0IFJUU1BTb3VyY2UgKiphZGRy cykKPiArewo+ICvCoMKgwqAgaW50IGk7Cj4gK8KgwqDCoCBpZiAoIWNvdW50KQo+ICvCoMKgwqDC oMKgwqDCoCByZXR1cm47Cj4gK8KgwqDCoCBhdl9zdHJsY2F0ZihidWYsIHNpemUsICImJXM9JXMi LCBuYW1lLCBhZGRyc1swXS0+c3JjX2FkZHIpOwo+ICvCoMKgwqAgZm9yIChpID0gMTsgaSA8IGNv dW50OyBpKyspIHsKPiArwqDCoMKgwqDCoMKgwqAgYXZfc3RybGNhdGYoYnVmLCBzaXplLCAiLCVz IiwgYWRkcnNbaV0tPnNyY19hZGRyKTsKPiArwqDCoMKgIH0KPiArfQo+ICsKPiDCoGludCBmZl9y dHNwX21ha2Vfc2V0dXBfcmVxdWVzdChBVkZvcm1hdENvbnRleHQgKnMsIGNvbnN0IGNoYXIgKmhv c3QsIAo+IGludCBwb3J0LAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgbG93ZXJfdHJhbnNwb3J0LCBjb25zdCBjaGFyIAo+ ICpyZWFsX2NoYWxsZW5nZSkKPiDCoHsKPiBAQCAtMTUxMCw2ICsxNTMyLDExIEBAIGludCBmZl9y dHNwX21ha2Vfc2V0dXBfcmVxdWVzdChBVkZvcm1hdENvbnRleHQgCj4gKnMsIGNvbnN0IGNoYXIg Kmhvc3QsIGludCBwb3J0LAo+IMKgwqDCoMKgwqDCoMKgwqAgfSBlbHNlCj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHJ0c3Bfc3QgPSBydC0+cnRzcF9zdHJlYW1zW2ldOwo+IMKgK8KgwqDCoMKg wqDCoMKgIC8qIFJUUC9VRFAgU291cmNlIFNwZWNpZmljIE11bHRpY2FzdCAoU1NNKSAqLwo+ICvC oMKgwqDCoMKgwqDCoCBpZiAoZmZfaXNfbXVsdGljYXN0X2FkZHJlc3MoKHN0cnVjdCBzb2NrYWRk ciopIAo+ICZydHNwX3N0LT5zZHBfaXApKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbG93 ZXJfdHJhbnNwb3J0ID0gUlRTUF9MT1dFUl9UUkFOU1BPUlRfVURQX01VTFRJQ0FTVDsKPiArwqDC oMKgwqDCoMKgwqAgfQo+ICsKPiDCoMKgwqDCoMKgwqDCoMKgIC8qIFJUUC9VRFAgKi8KPiDCoMKg wqDCoMKgwqDCoMKgIGlmIChsb3dlcl90cmFuc3BvcnQgPT0gUlRTUF9MT1dFUl9UUkFOU1BPUlRf VURQKSB7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNoYXIgYnVmWzI1Nl07Cj4gQEAgLTE2 NjYsNyArMTY5Myw3IEBAIGludCBmZl9ydHNwX21ha2Vfc2V0dXBfcmVxdWVzdChBVkZvcm1hdENv bnRleHQgCj4gKnMsIGNvbnN0IGNoYXIgKmhvc3QsIGludCBwb3J0LAo+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBicmVhazsKPiDCoMKgwqDCoMKgwqDCoMKgIH0KPiDCoMKgwqDCoMKgwqDCoMKg IGNhc2UgUlRTUF9MT1dFUl9UUkFOU1BPUlRfVURQX01VTFRJQ0FTVDogewo+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGNoYXIgdXJsW01BWF9VUkxfU0laRV0sIG5hbWVidWZbNTBdLCBvcHRidWZb MjBdID0gIiI7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY2hhciB1cmxbTUFYX1VSTF9TSVpF XSwgbmFtZWJ1Zls1MF0sIG9wdGJ1ZlsxMDI0XSA9ICIiOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBhZGRyOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBpbnQgcG9ydCwgdHRsOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBBVkRpY3Rpb25h cnkgKm9wdHMgPSBtYXBfdG9fb3B0cyhydCk7Cj4gQEAgLTE2ODIsNiArMTcwOSwyMCBAQCBpbnQg ZmZfcnRzcF9tYWtlX3NldHVwX3JlcXVlc3QoQVZGb3JtYXRDb250ZXh0IAo+ICpzLCBjb25zdCBj aGFyICpob3N0LCBpbnQgcG9ydCwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAodHRsID4gMCkKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBzbnByaW50ZihvcHRidWYsIHNpemVvZihvcHRidWYpLCAiP3R0bD0lZCIsIHR0 bCk7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChydHNwX3N0LT5uYl9pbmNsdWRl X3NvdXJjZV9hZGRycyA+IDApIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlm KHN0cmxlbihvcHRidWYpID09IDAgKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHNucHJpbnRmKG9wdGJ1Ziwgc2l6ZW9mKG9wdGJ1ZiksICI/Iik7Cj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgYXBwZW5kX3NvdXJjZV9hZGRycyhvcHRidWYsIHNpemVvZihvcHRidWYpLCAic291 cmNlcyIsCj4gKyBydHNwX3N0LT5uYl9pbmNsdWRlX3NvdXJjZV9hZGRycywKPiArIHJ0c3Bfc3Qt PmluY2x1ZGVfc291cmNlX2FkZHJzKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGFwcGVuZF9zb3VyY2VfYWRkcnMob3B0YnVmLCBzaXplb2Yob3B0YnVmKSwgImJsb2NrIiwKPiAr IHJ0c3Bfc3QtPm5iX2V4Y2x1ZGVfc291cmNlX2FkZHJzLAo+ICsgcnRzcF9zdC0+ZXhjbHVkZV9z b3VyY2VfYWRkcnMpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPiArCj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGdldG5hbWVpbmZvKChzdHJ1Y3Qgc29ja2FkZHIqKSAmYWRkciwgc2l6 ZW9mKGFkZHIpLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBuYW1lYnVmLCBzaXplb2YobmFtZWJ1ZiksIE5VTEwsIDAsIAo+IE5JX05VTUVSSUNIT1NU KTsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZmZfdXJsX2pvaW4odXJsLCBzaXplb2YodXJs KSwgInJ0cCIsIE5VTEwsIG5hbWVidWYsCj4gQEAgLTIzODMsMTYgKzI0MjQsNyBAQCBzdGF0aWMg aW50IHNkcF9wcm9iZShjb25zdCBBVlByb2JlRGF0YSAqcDEpCj4gwqDCoMKgwqAgcmV0dXJuIDA7 Cj4gwqB9Cj4gwqAtc3RhdGljIHZvaWQgYXBwZW5kX3NvdXJjZV9hZGRycyhjaGFyICpidWYsIGlu dCBzaXplLCBjb25zdCBjaGFyICpuYW1lLAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgY291bnQsIHN0cnVjdCBSVFNQ U291cmNlICoqYWRkcnMpCj4gLXsKPiAtwqDCoMKgIGludCBpOwo+IC3CoMKgwqAgaWYgKCFjb3Vu dCkKPiAtwqDCoMKgwqDCoMKgwqAgcmV0dXJuOwo+IC3CoMKgwqAgYXZfc3RybGNhdGYoYnVmLCBz aXplLCAiJiVzPSVzIiwgbmFtZSwgYWRkcnNbMF0tPmFkZHIpOwo+IC3CoMKgwqAgZm9yIChpID0g MTsgaSA8IGNvdW50OyBpKyspCj4gLcKgwqDCoMKgwqDCoMKgIGF2X3N0cmxjYXRmKGJ1Ziwgc2l6 ZSwgIiwlcyIsIGFkZHJzW2ldLT5hZGRyKTsKPiAtfQo+ICsKPiDCoCBzdGF0aWMgaW50IHNkcF9y ZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMpCj4gwqB7Cj4gZGlmZiAtLWdpdCBhL2xpYmF2 Zm9ybWF0L3J0c3AuaCBiL2xpYmF2Zm9ybWF0L3J0c3AuaAo+IGluZGV4IDgzYjJlM2Y0ZmIuLjYx ZGU1Y2ZiMTcgMTAwNjQ0Cj4gLS0tIGEvbGliYXZmb3JtYXQvcnRzcC5oCj4gKysrIGIvbGliYXZm b3JtYXQvcnRzcC5oCj4gQEAgLTQzMiw3ICs0MzIsOCBAQCB0eXBlZGVmIHN0cnVjdCBSVFNQU3Rh dGUgewo+IMKgI2RlZmluZSBSVFNQX0ZMQUdfU0FUSVBfUkFXwqDCoCAweDIwwqDCoCAvKio8IEV4 cG9ydCBTQVQ+SVAgc3RyZWFtIGFzIHJhdyAKPiBNUEVHLVRTICovCj4gwqAgdHlwZWRlZiBzdHJ1 Y3QgUlRTUFNvdXJjZSB7Cj4gLcKgwqDCoCBjaGFyIGFkZHJbMTI4XTsgLyoqPCBTb3VyY2Utc3Bl Y2lmaWMgbXVsdGljYXN0IGluY2x1ZGUgc291cmNlIElQIAo+IGFkZHJlc3MgKGZyb20gU0RQIGNv bnRlbnQpICovCj4gK8KgwqDCoCBjaGFyIGRlc3RfYWRkclsxMjhdOyAvKio8IFNvdXJjZS1zcGVj aWZpYyBtdWx0aWNhc3QgZGVzdGluYXRpb24gCj4gSVAgYWRkcmVzcyAoZnJvbSBTRFAgY29udGVu dCkgKi8KPiArwqDCoMKgIGNoYXIgc3JjX2FkZHJbMTI4XTsgLyoqPCBTb3VyY2Utc3BlY2lmaWMg bXVsdGljYXN0IGluY2x1ZGUgc291cmNlIAo+IElQIGFkZHJlc3MgKGZyb20gU0RQIGNvbnRlbnQp ICovCj4gwqB9IFJUU1BTb3VyY2U7Cj4gwqAgLyoqCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRl dmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVn LWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVn LWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K