Re: fix crashes when library functions fail

Zhouyang Jia <[email protected]> Tue, 27 Feb 2018 20:33:19 +0800
Newsgroups gmane.network.instant-messaging.ayttm.user
Message-ID <CABb2TxJTZWdqOjrnETcBzRX773=ivo23PaJ5O77aGbWGNaVUEA@mail.gmail.com>
--001a113f920aeec476056630d48f
Content-Type: multipart/alternative; boundary="001a113f920aeec472056630d48d"

--001a113f920aeec472056630d48d
Content-Type: text/plain; charset="UTF-8"

Hi, I found more potential API (including chdir, fopen, listen, pipe and
socket) bugs, which may cause bad results like crash due to the lack of
proper error handling.

Attached please find the patch against version 0.6.3 :)

2017-08-04 11:56 GMT+08:00 Philip Tellis <[email protected]>:

> On 3 August 2017 at 23:50, Zhouyang Jia <[email protected]> wrote:
>
> > I'm new to Ayttm, I analyzed the source code and found two potential
> bugs that may cause crashes.
>
> Welcome to the project, and thanks for looking into this.
>
> > 1. In ayttm-0.6.3/modules/utility/custom_message.c:158:7, if "open"
> failed to open "custom_away_msg", "read" would cause a crash since "fd" is
> -1.
> >
> > 2. In ayttm-0.6.3/libproxy/ssl.c:93:12, if "SSL_CTX_new" failed to
> initialize the SSL context, "SSL_CTX_set_default_verify_paths" would
> cause a crash since "ssl_ctx" is null.
> >
> > I think it's unsafe to assume that the library functions would be
> correct. It would be better if we could handle the errors properly.
>
> You're correct, and I've reviewed both your patches and they appear to be
> good.
>
> @Siddhesh, would you be able to merge these in?  I'm temporarily away from
> my box with the necessary credentials.
>
> Philip
>

--001a113f920aeec472056630d48d
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi, I found more potential API (including chdir, fopen, li=
sten, pipe and socket) bugs, which may cause bad results like crash due to =
the lack of proper error handling.<div><br></div><div>Attached please find =
the patch against version 0.6.3 :)<div><div class=3D"gmail_extra"><br><div =
class=3D"gmail_quote">2017-08-04 11:56 GMT+08:00 Philip Tellis <span dir=3D=
"ltr">&lt;<a href=3D"mailto:[email protected]" target=3D"_blank">phil=
[email protected]</a>&gt;</span>:<br><blockquote class=3D"gmail_quote" st=
yle=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:sol=
id;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><s=
pan class=3D"gmail-">On 3 August 2017 at 23:50, Zhouyang Jia &lt;<a href=3D=
"mailto:[email protected]" target=3D"_blank">[email protected]<=
/a>&gt; wrote:<br><br><div>&gt; I&#39;m new to Ayttm, I analyzed the source=
 code and found two potential bugs that may cause crashes.<br><br></div></s=
pan><div>Welcome to the project, and thanks for looking into this.</div><sp=
an class=3D"gmail-"><div><br></div><div>&gt; 1. In ayttm-0.6.3/modules/util=
ity/<wbr>custom_message.c:158:7, if &quot;open&quot; failed to open &quot;c=
ustom_away_msg&quot;, &quot;read&quot; would cause a crash since &quot;fd&q=
uot; is -1.<br>&gt;<br>&gt; 2. In ayttm-0.6.3/libproxy/ssl.c:93:<wbr>12, if=
 &quot;SSL_CTX_new&quot; failed to initialize the SSL context, &quot;SSL_CT=
X_set_default_verify_<wbr>paths&quot; would cause a crash since &quot;ssl_c=
tx&quot; is null.<br>&gt;<br>&gt; I think it&#39;s unsafe to assume that th=
e library functions would be correct. It would be better if we could handle=
 the errors properly.<br><br></div></span><div>You&#39;re correct, and I&#3=
9;ve reviewed both your patches and they appear to be good.</div><div><br><=
/div><div>@Siddhesh, would you be able to merge these in?=C2=A0 I&#39;m tem=
porarily away from my box with the necessary credentials.</div><span class=
=3D"gmail-HOEnZb"><font color=3D"#888888"><div><br></div><div>Philip</div><=
/font></span></div>
</blockquote></div><br></div></div></div></div>

--001a113f920aeec472056630d48d--
--001a113f920aeec476056630d48f
Content-Type: application/octet-stream; name="api_bugs_ayttm-0.6.3.patch"
Content-Disposition: attachment; filename="api_bugs_ayttm-0.6.3.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_je5mooew0

ZGlmZiAtLWdpdCBhL3NyYy9jcmFzaC5jIGIvc3JjL2NyYXNoLmMKaW5kZXggN2U2ZmVhMy4uYmFm
YTNkYSAxMDA2NDQKLS0tIGEvc3JjL2NyYXNoLmMKKysrIGIvc3JjL2NyYXNoLmMKQEAgLTM3MSw3
ICszNzEsOCBAQCBzdGF0aWMgdm9pZCBjcmFzaF9kZWJ1Zyh1bnNpZ25lZCBsb25nIGNyYXNoX3Bp
ZCwKIAlpbnQgY2hvdXRwdXRbMl07CiAJcGlkX3QgcGlkOwogCi0JcGlwZShjaG91dHB1dCk7CisJ
aWYgKHBpcGUoY2hvdXRwdXQpIDwgMCkKKyAgICAgICAgICAgIHBlcnJvcigicGlwZSIpOwogCiAJ
aWYgKDAgPT0gKHBpZCA9IGZvcmsoKSkpIHsKIAkJY2hhciAqYXJncFsxMF07CkBAIC01NjcsNyAr
NTY4LDggQEAgc3RhdGljIHZvaWQgY3Jhc2hfaGFuZGxlcihpbnQgc2lnKQogCQlhcmdzWzJdID0g
YnVmOwogCQlhcmdzWzNdID0gTlVMTDsKIAotCQljaGRpcihzdGFydHVwX2Rpcik7CisJCWlmIChj
aGRpcihzdGFydHVwX2RpcikgPCAwKQorICAgICAgICAgICAgICAgICAgICBwZXJyb3IoImNoZGly
Iik7CiAJCXNldGdpZChnZXRnaWQoKSk7CiAJCXNldHVpZChnZXR1aWQoKSk7CiAJCWV4ZWN2cChh
cmd2MCwgYXJncyk7CmRpZmYgLS1naXQgYS9zcmMvbWVzc2FnZV9wYXJzZS5jIGIvc3JjL21lc3Nh
Z2VfcGFyc2UuYwppbmRleCAzNjY4NTk3Li5hNzU0OTJkIDEwMDY0NAotLS0gYS9zcmMvbWVzc2Fn
ZV9wYXJzZS5jCisrKyBiL3NyYy9tZXNzYWdlX3BhcnNlLmMKQEAgLTI0Nyw2ICsyNDcsOCBAQCBz
dGF0aWMgdm9pZCBzZW5kX2ZpbGUoY2hhciAqZmlsZW5hbWUsIGludCBzKQogCQljaGFyIGxhYmVs
WzEwMjRdOwogCQl4ZmVyX2luX3Byb2dyZXNzID0gMTsKIAkJZnAgPSBmb3BlbihmaWxlbmFtZSwg
InJiIik7CisgICAgICAgICAgICAgICAgaWYgKGZwID09IE5VTEwpCisgICAgICAgICAgICAgICAg
ICAgIHBlcnJvcigiZm9wZW4iKTsKIAkJcHJpbnRmKCIlcyAlcyAlbGQgJTVkICVwXG4iLCBmaWxl
bmFtZSwgZmlsZW5hbWUgKyBpICsgMSwKIAkJCXN0cmxlbihmaWxlbmFtZSksIGh0b25zKHN0cmxl
bihmaWxlbmFtZSArIGkgKyAxKSksIGZwKTsKIAkJc25wcmludGYobGFiZWwsIDEwMjQsICJUcmFu
c2ZlcnJpbmcgJXMuLi4iLCBmaWxlbmFtZSk7CkBAIC0zNTksNiArMzYxLDggQEAgc3RhdGljIHZv
aWQgZ2V0X2ZpbGUoaW50IHMpCiAJcHJpbnRmKCJyZWNlaXZpbmcgZmlsZSAlc1xuIiwgYnVmZmVy
KTsKIAlhbW91bnRfcmVjZWl2ZWQgPSAwOwogCWZwID0gZm9wZW4oYnVmZmVyLCAid2IiKTsKKyAg
ICAgICAgaWYgKGZwID09IE5VTEwpCisgICAgICAgICAgICBwZXJyb3IoImZvcGVuIik7CiAKIAlz
bnByaW50ZihidWZmZXIzLCAxMDI0LAogCQlfKCJXb3VsZCB5b3UgbGlrZSB0byBhY2NlcHRcbiB0
aGUgZmlsZSAlcz9cblNpemU9JWx1IiksIGJ1ZmZlcjIsCkBAIC00MTAsNyArNDE0LDggQEAgdm9p
ZCBlYl9wYXJzZV9pbmNvbWluZ19tZXNzYWdlKGViX2xvY2FsX2FjY291bnQgKmFjY291bnQsCiAJ
CQkJZnJlZShidWZmKTsKIAkJCQlyZXR1cm47CS8qIGJpbmQgYWRkcmVzcyB0byBzb2NrZXQgKi8K
IAkJCX0KLQkJCWxpc3RlbihzLCAxKTsJLyogbWF4ICMgb2YgcXVldWVkIGNvbm5lY3RzICovCisJ
CQlpZiAobGlzdGVuKHMsIDEpID09IC0xKQkvKiBtYXggIyBvZiBxdWV1ZWQgY29ubmVjdHMgKi8K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJyb3IoImxpc3RlbiIpOwogCQkJc25wcmlu
dGYoYnVmZjIsIDEwMjQsICJFQl9DT01NQU5EIEFDQ0VQVCAlcyIsCiAJCQkJZ2V0X2xvY2FsX2Fk
ZHJlc3NlcygpKTsKIAkJCVJVTl9TRVJWSUNFKHJlbW90ZSktPnNlbmRfaW0oYWNjb3VudCwgcmVt
b3RlLCBidWZmMik7CkBAIC00MjcsNiArNDMyLDggQEAgdm9pZCBlYl9wYXJzZV9pbmNvbWluZ19t
ZXNzYWdlKGViX2xvY2FsX2FjY291bnQgKmFjY291bnQsCiAJCQl9CiAKIAkJCXNvY2tmZCA9IHNv
Y2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoc29ja2ZkIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJyb3IoInNvY2tl
dCIpOwogCiAJCQlkZXN0X2FkZHIuc2luX2ZhbWlseSA9IEFGX0lORVQ7CiAJCQlkZXN0X2FkZHIu
c2luX3BvcnQgPSBodG9ucyg0NTY3OCk7CmRpZmYgLS1naXQgYS9zcmMvcHJlZnMuYyBiL3NyYy9w
cmVmcy5jCmluZGV4IDQzMzQyOTAuLjdiNzlmMjAgMTAwNjQ0Ci0tLSBhL3NyYy9wcmVmcy5jCisr
KyBiL3NyYy9wcmVmcy5jCkBAIC05NDQsNiArOTQ0LDEwIEBAIHZvaWQgYXl0dG1fcHJlZnNfd3Jp
dGUodm9pZCkKIAlzbnByaW50ZihmaWxlLCBidWZmZXJMZW4sICIlc3ByZWZzIiwgY29uZmlnX2Rp
cik7CiAKIAlmcCA9IGZvcGVuKGJ1ZmYsICJ3Iik7CisgICAgICAgIGlmIChmcCA9PSBOVUxMKXsK
KyAgICAgICAgICAgIHBlcnJvcigiZm9wZW4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQogCiAJLyogd2luZG93IHBvc2l0aW9ucywgZXRjLiAqLwogCWZwcmludGYoZnAsICJ4X2Nv
bnRhY3Rfd2luZG93PSVkXG4iLCBpR2V0TG9jYWxQcmVmKCJ4X2NvbnRhY3Rfd2luZG93IikpOwpk
aWZmIC0tZ2l0IGEvc3JjL3V0aWwuYyBiL3NyYy91dGlsLmMKaW5kZXggYzQ2OTc5ZS4uZDQ0Y2Vl
MCAxMDA2NDQKLS0tIGEvc3JjL3V0aWwuYworKysgYi9zcmMvdXRpbC5jCkBAIC0xNjI5LDYgKzE2
MjksOCBAQCB2b2lkIHJlbmFtZV9uaWNrX2xvZyhjaGFyICpvbGRncm91cCwgY2hhciAqb2xkbmlj
aywgY29uc3QgY2hhciAqbmV3Z3JvdXAsCiAKIAkJZmNsb3NlKHRlc3QpOwogCQl0ZXN0ID0gZm9w
ZW4obmV3bmlja2xvZywgImEiKTsKKyAgICAgICAgICAgICAgICBpZiAodGVzdCA9PSBOVUxMKQor
ICAgICAgICAgICAgICAgICAgICBwZXJyb3IoImZvcGVuIik7CiAKIAkJaWYgKG9sZGZpbGUpIHsK
IAkJCXdoaWxlIChmZ2V0cyhyZWFkX2J1ZmZlciwgNDA5Niwgb2xkZmlsZSkgIT0gTlVMTCkK
--001a113f920aeec476056630d48f
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
--001a113f920aeec476056630d48f
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Ayttm-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ayttm-users

--001a113f920aeec476056630d48f--