Fwd: [PATCH] Fix reading last track when using -O on some drives

Weird Kerning <[email protected]> Tue, 30 Jul 2013 11:02:54 -0400
Newsgroups gmane.comp.audio.cd-paranoia.devel
Message-ID <CACd4uUQOPbAev_-B_-32y5T8+JCwvvqanwPehnX6tgamtnyQjw@mail.gmail.com>
--20cf3010e7194fec4204e2bbe716
Content-Type: multipart/alternative; boundary=20cf3010e7194fec3d04e2bbe714

--20cf3010e7194fec3d04e2bbe714
Content-Type: text/plain; charset=ISO-8859-1

Hi,

Sorry, just realized I sent these to the wrong list. Didn't realize there
was a -dev mailing list.

The second patch fixes an issue that occurs for some (but not all,
apparently) drives that do not support overreading when ripping the last
audio track if it's followed by a data track.


---------- Forwarded message ----------
From: Weird Kerning <[email protected]>
Date: Mon, Jul 29, 2013 at 11:15 AM
Subject: [PATCH] Fix reading last track when using -O on some drives
To: [email protected]


Hi,

It's often desirable to pass -O <sample offset> when ripping discs so that
it's easy to assess the accuracy of the rip by comparing to the rips other
have made by using AccurateRip and the like. On drives that require a large
-- presumably >= 588 -- sample offset correction that do not support
reading into the lead-out area of the disc, cdparanoia will cause (Linux --
not tested elsewhere) kernel transport errors and will fail when trying to
rip the last track.

This patch adds an option to force overreading into the lead-out (-x,
--force-overread) when ripping the last track on the disc, which is
disabled by default, since most drives are not actually able to
successfully do this. When it's not enabled, digital silence is written to
pad out the extracted audio so the track is the correct length. This
matches the behavior of other popular DAE tools like EAC and dbpoweramp.

This patch also fixes a bug that prevented overreading into the lead-out
from working even on drives that do support it. Without this patch when
using a read offset correction even for drives that do correctly overread,
the samples that are in the lead-out after offset correction were not being
correctly read, and were being written to the output as digital silence.
This patch forces a buffer flush before trying to read the extra sectors,
which causes the data to actually be read.

This patch resolves issues users have hit this issue:
https://github.com/thomasvs/morituri/issues/36  when using morituri, a cli
DAE tool that uses cdparanoia for audio extraction.

Patch is against the head of the cdparanoia svn repo. Please apply if
appropriate.

--20cf3010e7194fec3d04e2bbe714
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div>Hi,<br><br></div>Sorry, just realized I sent the=
se to the wrong list. Didn&#39;t realize there was a -dev mailing list.<br>=
<br></div>The second patch fixes an issue that occurs for some (but not all=
, apparently) drives that do not support overreading when ripping the last =
audio track if it&#39;s followed by a data track.<br>
<div><br><br><div><div>---------- Forwarded message ----------<br><div clas=
s=3D"gmail_quote">From: <b class=3D"gmail_sendername">Weird Kerning</b> <sp=
an dir=3D"ltr">&lt;<a href=3D"mailto:[email protected]">weirdkerning@g=
mail.com</a>&gt;</span><br>
Date: Mon, Jul 29, 2013 at 11:15 AM<br>Subject: [PATCH] Fix reading last tr=
ack when using -O on some drives<br>To: <a href=3D"mailto:[email protected]=
">[email protected]</a><br><br><br><div dir=3D"ltr"><div><div><div><div>Hi,=
<br>
<br></div>It&#39;s often desirable to pass -O &lt;sample offset&gt; when ri=
pping discs so that it&#39;s easy to assess the accuracy of the rip by comp=
aring to the rips other have made by using AccurateRip and the like. On dri=
ves that require a large -- presumably &gt;=3D 588 -- sample offset correct=
ion that do not support reading into the lead-out area of the disc, cdparan=
oia will cause (Linux -- not tested elsewhere) kernel transport errors and =
will fail when trying to rip the last track.<br>

<br></div>This patch adds an option to force overreading into the lead-out =
(-x, --force-overread) when ripping the last track on the disc, which is di=
sabled by default, since most drives are not actually able to successfully =
do this. When it&#39;s not enabled, digital silence is written to pad out t=
he extracted audio so the track is the correct length. This matches the beh=
avior of other popular DAE tools like EAC and dbpoweramp.<br>

<br></div>This patch also fixes a bug that prevented overreading into the l=
ead-out from working even on drives that do support it. Without this patch =
when using a read offset correction even for drives that do correctly overr=
ead, the samples that are in the lead-out after offset correction were not =
being correctly read, and were being written to the output as digital silen=
ce. This patch forces a buffer flush before trying to read the extra sector=
s, which causes the data to actually be read.<br>

<br></div><div>This patch resolves issues users have hit this issue: <a hre=
f=3D"https://github.com/thomasvs/morituri/issues/36" target=3D"_blank">http=
s://github.com/thomasvs/morituri/issues/36</a>=A0 when using morituri, a cl=
i DAE tool that uses cdparanoia for audio extraction.<br>

</div><div><br></div><div>Patch is against the head of the cdparanoia svn r=
epo. Please apply if appropriate.<br></div></div>
</div><br></div></div></div></div>

--20cf3010e7194fec3d04e2bbe714--
--20cf3010e7194fec4204e2bbe716
Content-Type: application/octet-stream; name="01-overread.patch"
Content-Disposition: attachment; filename="01-overread.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hjr8hh811

SW5kZXg6IGNkcGFyYW5vaWEuMQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjZHBhcmFub2lhLjEJKHJldmlzaW9u
IDE4OTY1KQorKysgY2RwYXJhbm9pYS4xCSh3b3JraW5nIGNvcHkpCkBAIC0yMDcsNiArMjA3LDEx
IEBACiBrbm93biB1c2VyIGRhdGEgYXJlYSBvZiB0aGUgZGlzYywgcHJvYmFibHkgY2F1c2luZyBy
ZWFkIGVycm9ycyBvbiBtb3N0CiBkcml2ZXMgYW5kIHBvc3NpYmx5IGV2ZW4gaGFyZCBsb2NrdXBz
IG9uIHNvbWUgYnVnZ3kgaGFyZHdhcmUuCiAKKy5UUAorLkJJICJcLXggLS1mb3JjZS1vdmVycmVh
ZAorRm9yY2Ugb3ZlcnJlYWRpbmcgaW50byB0aGUgbGVhZC1vdXQgcG9ydGlvbiBvZiB0aGUgZGlz
Yy4gVGhpcyBvcHRpb24gaXMgb25seSBhcHBsaWNhYmxlIHdoZW4gdXNpbmcgdGhlCisuQiAtTwor
b3B0aW9uIHdpdGggYSBwb3NpdGl2ZSBzYW1wbGUgb2Zmc2V0IHZhbHVlLiBNYW55IGRyaXZlcyBh
cmUgbm90IGNhcGFibGUgb2YgcmVhZGluZyBpbnRvIHRoaXMgcG9ydGlvbiBvZiB0aGUgZGlzYyBh
bmQgYXR0ZW1wdGluZyB0byBkbyBzbyBvbiB0aG9zZSBkcml2ZXMgd2lsbCBwcm9kdWNlIHJlYWQg
ZXJyb3JzIGFuZCBwb3NzaWJseSBoYXJkIGxvY2t1cHMuCiAKIC5UUAogLkIgXC1aIC0tZGlzYWJs
ZS1wYXJhbm9pYQpJbmRleDogbWFpbi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIG1haW4uYwkocmV2aXNpb24g
MTg5NjUpCisrKyBtYWluLmMJKHdvcmtpbmcgY29weSkKQEAgLTI2MCw2ICsyNjAsNyBAQAogIiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcnJlY3RcbiIKICIgIC1PIC0tc2Ft
cGxlLW9mZnNldCA8bj4gICAgICAgICAgOiBBZGQgPG4+IHNhbXBsZXMgdG8gdGhlIG9mZnNldCB3
aGVuXG4iCiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGluZyBkYXRh
LiAgTWF5IGJlIG5lZ2F0aXZlLlxuIgorIiAgLXggLS1mb3JjZS1vdmVycmVhZCAgICAgICAgICAg
ICA6IEVuYWJsZSBvdmVycmVhZGluZyBpbnRvIHRoZSBsZWFkLW91dC5cbiIKICIgIC16IC0tbmV2
ZXItc2tpcFs9bl0gICAgICAgICAgICAgOiBuZXZlciBhY2NlcHQgYW55IGxlc3MgdGhhbiBwZXJm
ZWN0XG4iCiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSByZWNvbnN0
cnVjdGlvbiAoZG9uJ3QgYWxsb3cgJ1YncylcbiIKICIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBidXQgaWYgW25dIGlzIGdpdmVuLCBza2lwIGFmdGVyIFtuXVxuIgpAQCAtNjA3
LDcgKzYwOCw3IEBACiAgICAgbWVtc2V0KGRpc3BjYWNoZSwnICcsZ3JhcGgpOwogfQogCi1jb25z
dCBjaGFyICpvcHRzdHJpbmcgPSAiZXNjQ246bzpPOmQ6ZzprOlM6cHJSd2FmdnFWUWhaejo6WVhX
Qmk6VHQ6bDo6TDo6QSI7Citjb25zdCBjaGFyICpvcHRzdHJpbmcgPSAiZXNjQ246bzpPOnhkOmc6
azpTOnByUndhZnZxVlFoWno6OllYV0JpOlR0Omw6Okw6OkEiOwogCiBzdHJ1Y3Qgb3B0aW9uIG9w
dGlvbnMgW10gPSB7CiAJeyJzdGRlcnItcHJvZ3Jlc3MiLG5vX2FyZ3VtZW50LE5VTEwsJ2UnfSwK
QEAgLTYyMSw2ICs2MjIsNyBAQAogCXsiZm9yY2UtZ2VuZXJpYy1kZXZpY2UiLHJlcXVpcmVkX2Fy
Z3VtZW50LE5VTEwsJ2cnfSwKIAl7ImZvcmNlLXJlYWQtc3BlZWQiLHJlcXVpcmVkX2FyZ3VtZW50
LE5VTEwsJ1MnfSwKIAl7InNhbXBsZS1vZmZzZXQiLHJlcXVpcmVkX2FyZ3VtZW50LE5VTEwsJ08n
fSwKKwl7ImZvcmNlLW92ZXJyZWFkIixub19hcmd1bWVudCxOVUxMLCd4J30sCiAJeyJ0b2Mtb2Zm
c2V0IixyZXF1aXJlZF9hcmd1bWVudCxOVUxMLCd0J30sCiAJeyJ0b2MtYmlhcyIsbm9fYXJndW1l
bnQsTlVMTCwnVCd9LAogCXsib3V0cHV0LXJhdyIsbm9fYXJndW1lbnQsTlVMTCwncCd9LApAQCAt
NjgyLDYgKzY4NCw3IEBACiAgIGNoYXIgKmZvcmNlX2dlbmVyaWNfZGV2aWNlPU5VTEw7CiAgIGNo
YXIgKmZvcmNlX2Nvb2tlZF9kZXZpY2U9TlVMTDsKICAgaW50IGZvcmNlX2Nkcm9tX3NwZWVkPTA7
CisgIGludCBmb3JjZV9vdmVycmVhZD0wOwogICBpbnQgbWF4X3JldHJpZXM9MjA7CiAgIGNoYXIg
KnNwYW49TlVMTDsKICAgaW50IG91dHB1dF90eXBlPTE7IC8qIDA9cmF3LCAxPXdhdiwgMj1haWZj
ICovCkBAIC04NTYsNiArODU5LDkgQEAKICAgICBjYXNlICdPJzoKICAgICAgIHNhbXBsZV9vZmZz
ZXQ9YXRvaShvcHRhcmcpOwogICAgICAgYnJlYWs7CisgICAgY2FzZSAneCc6CisgICAgICBmb3Jj
ZV9vdmVycmVhZD0xOworICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgIHVzYWdlKHN0
ZGVycik7CiAgICAgICBleGl0KDEpOwpAQCAtMTE3OSwxMSArMTE4NSwxOCBAQAogICAgICAgCiAg
ICAgfQogCisJaWYgKHRvY19vZmZzZXQgJiYgIWZvcmNlX292ZXJyZWFkKSB7CisJCWQtPmRpc2Nf
dG9jW2QtPnRyYWNrc10uZHdTdGFydFNlY3RvciAtPSB0b2Nfb2Zmc2V0OworCQlpZiAobGFzdF9z
ZWN0b3IgPiBjZGRhX3RyYWNrX2xhc3RzZWN0b3IoZCwgZC0+dHJhY2tzKSkKKwkJCWxhc3Rfc2Vj
dG9yIC09IHRvY19vZmZzZXQ7CisgICAgfQorCiAgICAgewogICAgICAgbG9uZyBjdXJzb3I7CiAg
ICAgICBpbnQxNl90IG9mZnNldF9idWZmZXJbMTE3Nl07CiAgICAgICBpbnQgb2Zmc2V0X2J1ZmZl
cl91c2VkPTA7CiAgICAgICBpbnQgb2Zmc2V0X3NraXA9c2FtcGxlX29mZnNldCo0OworICAgICAg
b2ZmX3Qgc2VjdG9ybGVuOwogCiAgICAgICBwPXBhcmFub2lhX2luaXQoZCk7CiAgICAgICBwYXJh
bm9pYV9tb2Rlc2V0KHAscGFyYW5vaWFfbW9kZSk7CkBAIC0xMjA1LDcgKzEyMTgsNyBAQAogCSBu
ZWVkIHRvIHNldCB0aGUgZGlzYyBsZW5ndGggZm9yd2FyZCBoZXJlIHNvIHRoYXQgdGhlIGxpYnMg
YXJlCiAJIHdpbGxpbmcgdG8gcmVhZCBwYXN0LCBhc3N1bWluZyB0aGF0IHdvcmtzIG9uIHRoZSBo
YXJkd2FyZSwgb2YKIAkgY291cnNlICovCi0gICAgICBpZihzYW1wbGVfb2Zmc2V0KQorICAgICAg
aWYoc2FtcGxlX29mZnNldCAmJiBmb3JjZV9vdmVycmVhZCkKIAlkLT5kaXNjX3RvY1tkLT50cmFj
a3NdLmR3U3RhcnRTZWN0b3IrKzsKIAogICAgICAgd2hpbGUoY3Vyc29yPD1sYXN0X3NlY3Rvcil7
CkBAIC0xMzIyLDE4ICsxMzM1LDI1IEBACiAJICAgIGZmbHVzaChsb2dmaWxlKTsKIAkgIH0KIAl9
Ci0JCisKKwlzZWN0b3JsZW4gPSBiYXRjaF9sYXN0IC0gYmF0Y2hfZmlyc3QgKyAxOworCWlmIChj
ZGRhX3NlY3Rvcl9nZXR0cmFjayhkLCBjdXJzb3IpID09IGQtPnRyYWNrcyAmJgorCQl0b2Nfb2Zm
c2V0ID4gMCAmJiAhZm9yY2Vfb3ZlcnJlYWQpCisJeworCQlzZWN0b3JsZW4gKz0gdG9jX29mZnNl
dDsKKwl9CisKIAlzd2l0Y2gob3V0cHV0X3R5cGUpewogCWNhc2UgMDogLyogcmF3ICovCiAJICBi
cmVhazsKIAljYXNlIDE6IC8qIHdhdiAqLwotCSAgV3JpdGVXYXYob3V0LChiYXRjaF9sYXN0LWJh
dGNoX2ZpcnN0KzEpKkNEX0ZSQU1FU0laRV9SQVcpOworCSAgV3JpdGVXYXYob3V0LCBzZWN0b3Js
ZW4gKiBDRF9GUkFNRVNJWkVfUkFXKTsKIAkgIGJyZWFrOwogCWNhc2UgMjogLyogYWlmYyAqLwot
CSAgV3JpdGVBaWZjKG91dCwoYmF0Y2hfbGFzdC1iYXRjaF9maXJzdCsxKSpDRF9GUkFNRVNJWkVf
UkFXKTsKKwkgIFdyaXRlQWlmYyhvdXQsIHNlY3RvcmxlbiAqIENEX0ZSQU1FU0laRV9SQVcpOwog
CSAgYnJlYWs7CiAJY2FzZSAzOiAvKiBhaWZmICovCi0JICBXcml0ZUFpZmYob3V0LChiYXRjaF9s
YXN0LWJhdGNoX2ZpcnN0KzEpKkNEX0ZSQU1FU0laRV9SQVcpOworCSAgV3JpdGVBaWZmKG91dCwg
c2VjdG9ybGVuICogQ0RfRlJBTUVTSVpFX1JBVyk7CiAJICBicmVhazsKIAl9CiAJCkBAIC0xNDAy
LDQ0ICsxNDIyLDcwIEBACiAKIAkgIC8qIE9uZSBsYXN0IGJpdCBvZiBzaWxsaW5lc3MgdG8gZGVh
bCB3aXRoIHNhbXBsZSBvZmZzZXRzICovCiAJICBpZihzYW1wbGVfb2Zmc2V0ICYmIGN1cnNvcj5i
YXRjaF9sYXN0KXsKLQkgICAgaW50IGk7Ci0JICAgIC8qIHJlYWQgYSBzZWN0b3IgYW5kIG91dHB1
dCB0aGUgcGFydGlhbCBvZmZzZXQuICBTYXZlIHRoZQotICAgICAgICAgICAgICAgcmVzdCBmb3Ig
dGhlIG5leHQgYmF0Y2ggaXRlcmF0aW9uICovCi0JICAgIHJlYWRidWY9cGFyYW5vaWFfcmVhZF9s
aW1pdGVkKHAsY2FsbGJhY2ssbWF4X3JldHJpZXMpOwotCSAgICBlcnI9Y2RkYV9lcnJvcnMoZCk7
bWVzPWNkZGFfbWVzc2FnZXMoZCk7CisJCWlmIChjZGRhX3NlY3Rvcl9nZXR0cmFjayhkLCBiYXRj
aF9sYXN0KSA8IGQtPnRyYWNrcyB8fCBmb3JjZV9vdmVycmVhZCkgeworCQkgICAgaW50IGk7CiAK
LQkgICAgaWYobWVzIHx8IGVycikKLQkgICAgICBmcHJpbnRmKHN0ZGVyciwiXHIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIgotCQkgICAgICAiICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFxyJXMlc1xuIiwKLQkJICAgICAgbWVzP21lczoiIixlcnI/ZXJy
OiIiKTsKLQkgIAotCSAgICBpZihlcnIpZnJlZShlcnIpO2lmKG1lcylmcmVlKG1lcyk7Ci0JICAg
IGlmKHJlYWRidWY9PU5VTEwpewotCSAgICAgIHNraXBwZWRfZmxhZz0xOwotCSAgICAgIHJlcG9y
dCgiXG5wYXJhbm9pYV9yZWFkOiBVbnJlY292ZXJhYmxlIGVycm9yIHJlYWRpbmcgdGhyb3VnaCAi
Ci0JCSAgICAgInNhbXBsZV9vZmZzZXQgc2hpZnRcblx0YXQgZW5kIG9mIHRyYWNrLCBiYWlsaW5n
LlxuIik7Ci0JICAgICAgYnJlYWs7Ci0JICAgIH0KLQkgICAgaWYoc2tpcHBlZF9mbGFnICYmIGFi
b3J0X29uX3NraXApYnJlYWs7Ci0JICAgIHNraXBwZWRfZmxhZz0wOwotCSAgICAvKiBkbyBub3Qg
bW92ZSB0aGUgY3Vyc29yICovCi0JICAKLQkgICAgaWYob3V0cHV0X2VuZGlhbiE9YmlnZW5kaWFu
cCgpKQotCSAgICAgIGZvcihpPTA7aTxDRF9GUkFNRVNJWkVfUkFXLzI7aSsrKQotCQlvZmZzZXRf
YnVmZmVyW2ldPXN3YXAxNihyZWFkYnVmW2ldKTsKLQkgICAgZWxzZQotCSAgICAgIG1lbWNweShv
ZmZzZXRfYnVmZmVyLHJlYWRidWYsQ0RfRlJBTUVTSVpFX1JBVyk7Ci0JICAgIG9mZnNldF9idWZm
ZXJfdXNlZD1zYW1wbGVfb2Zmc2V0KjQ7Ci0JICAKLQkgICAgY2FsbGJhY2soY3Vyc29yKihDRF9G
UkFNRVdPUkRTKSwtMik7CisJCQkvKiBOZWVkIHRvIGZsdXNoIHRoZSBidWZmZXIgd2hlbiBvdmVy
cmVhZGluZyBpbnRvIHRoZSBsZWFkb3V0ICovCisJCQlpZiAoY2RkYV9zZWN0b3JfZ2V0dHJhY2so
ZCwgYmF0Y2hfbGFzdCkgPT0gZC0+dHJhY2tzKQorCQkJCXBhcmFub2lhX3NlZWsocCwgY3Vyc29y
LCBTRUVLX1NFVCk7CiAKLQkgICAgaWYoYnVmZmVyaW5nX3dyaXRlKG91dCwoY2hhciAqKW9mZnNl
dF9idWZmZXIsCisJCSAgICAvKiByZWFkIGEgc2VjdG9yIGFuZCBvdXRwdXQgdGhlIHBhcnRpYWwg
b2Zmc2V0LiAgU2F2ZSB0aGUKKwkgICAgICAgICAgICAgICByZXN0IGZvciB0aGUgbmV4dCBiYXRj
aCBpdGVyYXRpb24gKi8KKwkJICAgIHJlYWRidWY9cGFyYW5vaWFfcmVhZF9saW1pdGVkKHAsY2Fs
bGJhY2ssbWF4X3JldHJpZXMpOworCQkgICAgZXJyPWNkZGFfZXJyb3JzKGQpO21lcz1jZGRhX21l
c3NhZ2VzKGQpOworCQorCQkgICAgaWYobWVzIHx8IGVycikKKwkJICAgICAgZnByaW50ZihzdGRl
cnIsIlxyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIKKwkJCSAgICAgICIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHIlcyVzXG4iLAorCQkJICAgICAg
bWVzP21lczoiIixlcnI/ZXJyOiIiKTsKKwkJICAKKwkJICAgIGlmKGVycilmcmVlKGVycik7aWYo
bWVzKWZyZWUobWVzKTsKKwkJICAgIGlmKHJlYWRidWY9PU5VTEwpeworCQkgICAgICBza2lwcGVk
X2ZsYWc9MTsKKwkJICAgICAgcmVwb3J0KCJcbnBhcmFub2lhX3JlYWQ6IFVucmVjb3ZlcmFibGUg
ZXJyb3IgcmVhZGluZyB0aHJvdWdoICIKKwkJCSAgICAgInNhbXBsZV9vZmZzZXQgc2hpZnRcblx0
YXQgZW5kIG9mIHRyYWNrLCBiYWlsaW5nLlxuIik7CisJCSAgICAgIGJyZWFrOworCQkgICAgfQor
CQkgICAgaWYoc2tpcHBlZF9mbGFnICYmIGFib3J0X29uX3NraXApYnJlYWs7CisJCSAgICBza2lw
cGVkX2ZsYWc9MDsKKwkJICAgIC8qIGRvIG5vdCBtb3ZlIHRoZSBjdXJzb3IgKi8KKwkJICAKKwkJ
ICAgIGlmKG91dHB1dF9lbmRpYW4hPWJpZ2VuZGlhbnAoKSkKKwkJICAgICAgZm9yKGk9MDtpPENE
X0ZSQU1FU0laRV9SQVcvMjtpKyspCisJCQlvZmZzZXRfYnVmZmVyW2ldPXN3YXAxNihyZWFkYnVm
W2ldKTsKKwkJICAgIGVsc2UKKwkJICAgICAgbWVtY3B5KG9mZnNldF9idWZmZXIscmVhZGJ1ZixD
RF9GUkFNRVNJWkVfUkFXKTsKKwkJICAgIG9mZnNldF9idWZmZXJfdXNlZD1zYW1wbGVfb2Zmc2V0
KjQ7CisJCSAgICBjYWxsYmFjayhjdXJzb3IqKENEX0ZSQU1FV09SRFMpLC0yKTsKKwkJICB9IGVs
c2UgeworCQkJbWVtc2V0KG9mZnNldF9idWZmZXIsIDAsIHNpemVvZihvZmZzZXRfYnVmZmVyKSk7
CisJCQlvZmZzZXRfYnVmZmVyX3VzZWQgPSBzYW1wbGVfb2Zmc2V0ICogNDsKKwkJICB9CisKKwkJ
ICBpZihidWZmZXJpbmdfd3JpdGUob3V0LChjaGFyICopb2Zmc2V0X2J1ZmZlciwKIAkJCSAgICAg
ICBvZmZzZXRfYnVmZmVyX3VzZWQpKXsKLQkgICAgICByZXBvcnQoIkVycm9yIHdyaXRpbmcgb3V0
cHV0OiAlcyIsc3RyZXJyb3IoZXJybm8pKTsKLQkgICAgICBleGl0KDEpOwotCSAgICB9Ci0JICB9
CisJCSAgICAgIHJlcG9ydCgiRXJyb3Igd3JpdGluZyBvdXRwdXQ6ICVzIixzdHJlcnJvcihlcnJu
bykpOworCQkgICAgICBleGl0KDEpOworCQkgIH0KKwkJfQogCX0KKworCS8qIFdyaXRlIHNlY3Rv
cnMgb2Ygc2lsZW50IGF1ZGlvIHRvIGNvbXBlbnNhdGUgZm9yCisgICAgICAgbWlzc2luZyBzYW1w
bGVzIHRoYXQgd291bGQgYmUgaW4gdGhlIGxlYWRvdXQgKi8KKwlpZiAoY2RkYV9zZWN0b3JfZ2V0
dHJhY2soZCwgYmF0Y2hfbGFzdCkgPT0gZC0+dHJhY2tzICYmCisJCXRvY19vZmZzZXQgPiAwICYm
ICFmb3JjZV9vdmVycmVhZCkKKwl7CisJCWNoYXIgKnNpbGVuY2U7CisJCXNpemVfdCBtaXNzaW5n
X3NlY3Rvcl9ieXRlcyA9IENEX0ZSQU1FU0laRV9SQVcgKiB0b2Nfb2Zmc2V0OworCisJCXNpbGVu
Y2UgPSBjYWxsb2ModG9jX29mZnNldCwgQ0RfRlJBTUVTSVpFX1JBVyk7CisJCWlmICghc2lsZW5j
ZSB8fCBidWZmZXJpbmdfd3JpdGUob3V0LCBzaWxlbmNlLCBtaXNzaW5nX3NlY3Rvcl9ieXRlcykp
IHsKKwkJICAgICAgcmVwb3J0KCJFcnJvciB3cml0aW5nIG91dHB1dDogJXMiLCBzdHJlcnJvcihl
cnJubykpOworCQkgICAgICBleGl0KDEpOworCQl9CisJCWZyZWUoc2lsZW5jZSk7CisJfQorCiAJ
Y2FsbGJhY2soY3Vyc29yKihDRF9GUkFNRVNJWkVfUkFXLzIpLTEsLTEpOwogCWJ1ZmZlcmluZ19j
bG9zZShvdXQpOwogCWlmKHNraXBwZWRfZmxhZyl7Cg==
--20cf3010e7194fec4204e2bbe716
Content-Type: application/octet-stream; name="02-overread_data.patch"
Content-Disposition: attachment; filename="02-overread_data.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hjr8hq9f1

ZGlmZiAtdSBtYWluLmMgbWFpbi5jCi0tLSBtYWluLmMJKHdvcmtpbmcgY29weSkKKysrIG1haW4u
Ywkod29ya2luZyBjb3B5KQpAQCAtNjkyLDYgKzY5Miw3IEBACiAgIGludCBxdWVyeV9vbmx5PTA7
CiAgIGludCBiYXRjaD0wLGk7CiAgIGludCBydW5fY2FjaGVfdGVzdD0wOworICBpbnQgbGFzdF9h
dWRpb190cmFjazsKIAogICBjaGFyICpsb2dmaWxlX25hbWU9TlVMTDsKICAgY2hhciAqcmVwb3J0
ZmlsZV9uYW1lPU5VTEw7CkBAIC0xMTg1LDkgKzExODYsMTkgQEAKICAgICAgIAogICAgIH0KIAor
CWxhc3RfYXVkaW9fdHJhY2sgPSBkLT50cmFja3M7CiAJaWYgKHRvY19vZmZzZXQgJiYgIWZvcmNl
X292ZXJyZWFkKSB7Ci0JCWQtPmRpc2NfdG9jW2QtPnRyYWNrc10uZHdTdGFydFNlY3RvciAtPSB0
b2Nfb2Zmc2V0OwotCQlpZiAobGFzdF9zZWN0b3IgPiBjZGRhX3RyYWNrX2xhc3RzZWN0b3IoZCwg
ZC0+dHJhY2tzKSkKKwkJaW50IGx0OworCisJCWZvciAobHQgPSBkLT50cmFja3MgOyBsdCA+IDAg
OyBsdC0tKQorCQkJaWYgKGNkZGFfdHJhY2tfYXVkaW9wKGQsIGx0KSkKKwkJCQlicmVhazsKKwor
CQlpZiAobHQgPiAwKQorCQkJbGFzdF9hdWRpb190cmFjayA9IGx0OworCisJCWQtPmRpc2NfdG9j
W2xhc3RfYXVkaW9fdHJhY2tdLmR3U3RhcnRTZWN0b3IgLT0gdG9jX29mZnNldDsKKwkJaWYgKGxh
c3Rfc2VjdG9yID4gY2RkYV90cmFja19sYXN0c2VjdG9yKGQsIGxhc3RfYXVkaW9fdHJhY2spKQog
CQkJbGFzdF9zZWN0b3IgLT0gdG9jX29mZnNldDsKICAgICB9CiAKQEAgLTEzMzcsNyArMTM0OCw3
IEBACiAJfQogCiAJc2VjdG9ybGVuID0gYmF0Y2hfbGFzdCAtIGJhdGNoX2ZpcnN0ICsgMTsKLQlp
ZiAoY2RkYV9zZWN0b3JfZ2V0dHJhY2soZCwgY3Vyc29yKSA9PSBkLT50cmFja3MgJiYKKwlpZiAo
Y2RkYV9zZWN0b3JfZ2V0dHJhY2soZCwgY3Vyc29yKSA9PSBsYXN0X2F1ZGlvX3RyYWNrICYmCiAJ
CXRvY19vZmZzZXQgPiAwICYmICFmb3JjZV9vdmVycmVhZCkKIAl7CiAJCXNlY3RvcmxlbiArPSB0
b2Nfb2Zmc2V0OwpAQCAtMTQyMiwxMSArMTQzMywxMSBAQAogCiAJICAvKiBPbmUgbGFzdCBiaXQg
b2Ygc2lsbGluZXNzIHRvIGRlYWwgd2l0aCBzYW1wbGUgb2Zmc2V0cyAqLwogCSAgaWYoc2FtcGxl
X29mZnNldCAmJiBjdXJzb3I+YmF0Y2hfbGFzdCl7Ci0JCWlmIChjZGRhX3NlY3Rvcl9nZXR0cmFj
ayhkLCBiYXRjaF9sYXN0KSA8IGQtPnRyYWNrcyB8fCBmb3JjZV9vdmVycmVhZCkgeworCQlpZiAo
Y2RkYV9zZWN0b3JfZ2V0dHJhY2soZCwgYmF0Y2hfbGFzdCkgPCBsYXN0X2F1ZGlvX3RyYWNrIHx8
IGZvcmNlX292ZXJyZWFkKSB7CiAJCSAgICBpbnQgaTsKIAogCQkJLyogTmVlZCB0byBmbHVzaCB0
aGUgYnVmZmVyIHdoZW4gb3ZlcnJlYWRpbmcgaW50byB0aGUgbGVhZG91dCAqLwotCQkJaWYgKGNk
ZGFfc2VjdG9yX2dldHRyYWNrKGQsIGJhdGNoX2xhc3QpID09IGQtPnRyYWNrcykKKwkJCWlmIChj
ZGRhX3NlY3Rvcl9nZXR0cmFjayhkLCBiYXRjaF9sYXN0KSA9PSBsYXN0X2F1ZGlvX3RyYWNrKQog
CQkJCXBhcmFub2lhX3NlZWsocCwgY3Vyc29yLCBTRUVLX1NFVCk7CiAKIAkJICAgIC8qIHJlYWQg
YSBzZWN0b3IgYW5kIG91dHB1dCB0aGUgcGFydGlhbCBvZmZzZXQuICBTYXZlIHRoZQpAQCAtMTQ3
Miw3ICsxNDgzLDcgQEAKIAogCS8qIFdyaXRlIHNlY3RvcnMgb2Ygc2lsZW50IGF1ZGlvIHRvIGNv
bXBlbnNhdGUgZm9yCiAgICAgICAgbWlzc2luZyBzYW1wbGVzIHRoYXQgd291bGQgYmUgaW4gdGhl
IGxlYWRvdXQgKi8KLQlpZiAoY2RkYV9zZWN0b3JfZ2V0dHJhY2soZCwgYmF0Y2hfbGFzdCkgPT0g
ZC0+dHJhY2tzICYmCisJaWYgKGNkZGFfc2VjdG9yX2dldHRyYWNrKGQsIGJhdGNoX2xhc3QpID09
IGxhc3RfYXVkaW9fdHJhY2sgJiYKIAkJdG9jX29mZnNldCA+IDAgJiYgIWZvcmNlX292ZXJyZWFk
KQogCXsKIAkJY2hhciAqc2lsZW5jZTsK
--20cf3010e7194fec4204e2bbe716
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Paranoia-dev mailing list
[email protected]
http://lists.xiph.org/mailman/listinfo/paranoia-dev

--20cf3010e7194fec4204e2bbe716--