From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Noah Lavine Newsgroups: gmane.lisp.guile.devel Subject: Re: Bug in Guile's Posix Networking Date: Sat, 12 Feb 2011 22:00:42 -0500 Message-ID: References: <877hdb76cq.fsf@vir.lan> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=000e0cd6a97e09e4cc049c212316 X-Trace: dough.gmane.org 1297566057 13386 80.91.229.12 (13 Feb 2011 03:00:57 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 13 Feb 2011 03:00:57 +0000 (UTC) Cc: guile-devel@gnu.org To: Andy Wingo Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Sun Feb 13 04:00:52 2011 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1PoSCi-0007Dp-Bb for guile-devel@m.gmane.org; Sun, 13 Feb 2011 04:00:52 +0100 Original-Received: from localhost ([127.0.0.1]:45402 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PoSCh-0006Vz-OG for guile-devel@m.gmane.org; Sat, 12 Feb 2011 22:00:51 -0500 Original-Received: from [140.186.70.92] (port=43355 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PoSCe-0006Vr-FL for guile-devel@gnu.org; Sat, 12 Feb 2011 22:00:49 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PoSCZ-0004xq-Lq for guile-devel@gnu.org; Sat, 12 Feb 2011 22:00:48 -0500 Original-Received: from mail-gx0-f169.google.com ([209.85.161.169]:33540) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PoSCZ-0004xm-I2 for guile-devel@gnu.org; Sat, 12 Feb 2011 22:00:43 -0500 Original-Received: by gxk5 with SMTP id 5so1807575gxk.0 for ; Sat, 12 Feb 2011 19:00:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=wzuSbQ29KNa3GYuGuhoa3DT9i6qveS8uNMKBra1xpUA=; b=vDoSzfHNAqNmFBNWb27x5lljbUxxliQEZqJ4DwLqVKCFuxVBMKw12iSQ4qYh0Ru8Yq tr0KbtdH1Ipt61CQAP7kdl0WVcbmFpjy996OKuv8jAOarb6S2Yrg2Cdmt8JJhGFV1KX1 m9hkDfzh6QdTJEWwRTpaSJzrNbSC8NJ8kt2UU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; b=GUxR01/HnMqGfPOh773wbEZ5MMUZS0kaKP5sURAhNx1MHjKokTb/z5NDXXoSvLrssA sKAS3F+gpdfc0FbFgL/LfVuo1/e1c2RzFmekuPumcIh9JK1kEVihGKR0b1IKTNW185OD 7ayn0GmffzZ3s9lBxqvgR0X3e2PCljuUSAqNY= Original-Received: by 10.150.11.16 with SMTP id 16mr2590337ybk.444.1297566042546; Sat, 12 Feb 2011 19:00:42 -0800 (PST) Original-Received: by 10.147.40.5 with HTTP; Sat, 12 Feb 2011 19:00:42 -0800 (PST) In-Reply-To: X-Google-Sender-Auth: BGetCUt1ps-fF-dgfeH8U1fwtPE X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 209.85.161.169 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:11588 Archived-At: --000e0cd6a97e09e4cc049c212316 Content-Type: text/plain; charset=ISO-8859-1 And this patch sets the sin_len member of struct sockaddr_in correctly, even if it doesn't appear in struct sockaddr. It's not needed to fix the previous bug, but it is more correct. Also it seems like the sort of thing that could cause trouble later if it's not fixed. On Sat, Feb 12, 2011 at 9:22 PM, Noah Lavine wrote: > Hello again, > > The attached patch fixes the problem for me, and I believe zeroing > some data structures before they're used won't hurt things for anyone > else. > > Noah > > On Sat, Feb 12, 2011 at 8:45 PM, Noah Lavine wrote: >> Hi all, >> >> I think I have isolated the error (although in fact there are two >> things that should be fixed). >> >> I gdb'd Guile's executable and looked at the struct sockaddr just >> before it was passed to bind. There were two mistakes. >> >> First of all, that struct has an sa_len field which is supposed to >> contain its length, but in fact contained junk. Second of all, it >> should have been padded with 8 bytes of zeros at the end, but it >> wasn't. After experimenting a bit, it turns out that padding with >> zeros was what made the difference, but probably the sa_len field >> should be fixed anyway. I'll work on a patch for this. >> >> Noah >> >> On Sat, Feb 12, 2011 at 8:22 PM, Noah Lavine wrote: >>> Hi, >>> >>>> #x49 is 73 :) >>> >>> If I knew a facepalm emoticon, I would use it now. :) >>> >>>> Could the lseek could be the problem? >>> >>> Maybe, but I suspect not. My man page for lseek says that lseek will >>> fail with ESPIPE if it is called on a socket, and my errno.h defines >>> ESPIPE to be 29, which is the error we got. So that's what's happening >>> there. >>> >>> However, I looked to see where the lseek call was coming from, and it >>> happens in scm_fdes_to_port, on line 564 of fports.c. The lseek is >>> done for the purpose of checking whether the port supports lseek, and >>> when it returns -1, we put an entry into some data structure (port >>> table?) saying that it doesn't support random access. So it looks like >>> that error is actually expected in the port code. >>> >>> Noah >>> >> > --000e0cd6a97e09e4cc049c212316 Content-Type: application/octet-stream; name="0001-configure.ac-sometimes-the-sin_len-member-appears-in.patch" Content-Disposition: attachment; filename="0001-configure.ac-sometimes-the-sin_len-member-appears-in.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gk3dbb5n1 RnJvbSA3Mzk3MTZkZjRlNTRkZjE5NGEwNDY5ZjZlMTI4MjRmN2Q3NGIxZjAyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FoIExhdmluZSA8bmxhdmluZUBoYXZlcmZvcmQuZWR1PgpE YXRlOiBTYXQsIDEyIEZlYiAyMDExIDIxOjU4OjAwIC0wNTAwClN1YmplY3Q6IFtQQVRDSF0gICog Y29uZmlndXJlLmFjOiBzb21ldGltZXMgdGhlIHNpbl9sZW4gbWVtYmVyIGFwcGVhcnMgaW4gc3Ry dWN0CiAgICAgc29ja2FkZHJfaW4gYnV0IG5vdCBpbiBzdHJ1Y3Qgc29ja2FkZHIKICAqIGxpYmd1 aWxlL3NvY2tldC5jOiB1cGRhdGUgdG8gcmVmbGVjdCBjaGFuZ2UgaW4gY29uZmlndXJlLmFjCgot LS0KIGNvbmZpZ3VyZS5hYyAgICAgIHwgICAgMyArKy0KIGxpYmd1aWxlL3NvY2tldC5jIHwgICAg NiArKysrKy0KIDIgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCA2OWYzNWUy Li5kOTVjYjBlIDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBA IC05NTUsNyArOTU1LDggQEAgQUNfQ0hFQ0tfRlVOQ1Moc2V0aG9zdGVudCAgIGdldGhvc3RlbnQg ICBlbmRob3N0ZW50ICAgZG5sCiAjIHN0cnVjdCBzb2NrYWRkciBmaWVsZCBzaW5fbGVuIGlzIG9u bHkgcHJlc2VudCBvbiBCU0Qgc3lzdGVtcy4KICMgT24gNC40QlNEIGFwcGFyZW50bHkgYSAjZGVm aW5lIFNJTl9MRU4gZXhpc3RzLCBidXQgb24gb3RoZXIgQlNEIHN5c3RlbXMKICMgKGVnLiBGcmVl QlNEIDQuOSkgaXQgZG9lc24ndCBhbmQgd2UgbXVzdCB1c2UgdGhpcyBjb25maWd1cmUgY2hlY2sK LUFDX0NIRUNLX01FTUJFUlMoW3N0cnVjdCBzb2NrYWRkci5zaW5fbGVuXSwsLAorIyBPbiBNYWMg T1MgWCwgdGhlIGZpZWxkIG9ubHkgYXBwZWFycyBpbiBzdHJ1Y3Qgc29ja2FkZHJfaW4KK0FDX0NI RUNLX01FTUJFUlMoW3N0cnVjdCBzb2NrYWRkci5zaW5fbGVuLCBzdHJ1Y3Qgc29ja2FkZHJfaW4u c2luX2xlbl0sLCwKIFsjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAogI2luY2x1ZGUgPHN5cy90eXBl cy5oPgogI2VuZGlmCmRpZmYgLS1naXQgYS9saWJndWlsZS9zb2NrZXQuYyBiL2xpYmd1aWxlL3Nv Y2tldC5jCmluZGV4IGQ4YWIwMDUuLjRmOWRhZmMgMTAwNjQ0Ci0tLSBhL2xpYmd1aWxlL3NvY2tl dC5jCisrKyBiL2xpYmd1aWxlL3NvY2tldC5jCkBAIC03OTgsNyArNzk4LDcgQEAgc2NtX2ZpbGxf c29ja2FkZHIgKGludCBmYW0sIFNDTSBhZGRyZXNzLCBTQ00gKmFyZ3MsIGludCB3aGljaF9hcmcs CiAJc29rYSA9IChzdHJ1Y3Qgc29ja2FkZHJfaW4gKikgc2NtX21hbGxvYyAoc2l6ZW9mIChzdHJ1 Y3Qgc29ja2FkZHJfaW4pKTsKICAgICAgICAgbWVtc2V0IChzb2thLCAnXDAnLCBzaXplb2YgKHN0 cnVjdCBzb2NrYWRkcl9pbikpOwogCi0jaWZkZWYgSEFWRV9TVFJVQ1RfU09DS0FERFJfU0lOX0xF TgorI2lmZGVmIEhBVkVfU1RSVUNUX1NPQ0tBRERSX1NJTl9MRU4gfHwgSEFWRV9TVFJVQ1RfU09D S0FERFJfSU5fU0lOX0xFTgogCXNva2EtPnNpbl9sZW4gPSBzaXplb2YgKHN0cnVjdCBzb2NrYWRk cl9pbik7CiAjZW5kaWYKIAlzb2thLT5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKQEAgLTExMzQsNiAr MTEzNCwxMCBAQCBzY21fdG9fc29ja2FkZHIgKFNDTSBhZGRyZXNzLCBzaXplX3QgKmFkZHJlc3Nf c2l6ZSkKIAogICAgICAgICAgICAgbWVtc2V0ICgmY19pbmV0LCAnXDAnLCBzaXplb2YgKHN0cnVj dCBzb2NrYWRkcl9pbikpOwogCisjaWZkZWYgSEFWRV9TVFJVQ1RfU09DS0FERFJfU0lOX0xFTiB8 fCBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTl9TSU5fTEVOCisgICAgICAgICAgICBjX2luZXQuc2lu X2xlbiA9IHNpemVvZiAoc3RydWN0IHNvY2thZGRyX2luKTsKKyNlbmRpZgorCiAJICAgIGNfaW5l dC5zaW5fYWRkci5zX2FkZHIgPQogCSAgICAgIGh0b25sIChzY21fdG9fdWxvbmcgKFNDTV9TSU1Q TEVfVkVDVE9SX1JFRiAoYWRkcmVzcywgMSkpKTsKIAkgICAgY19pbmV0LnNpbl9wb3J0ID0KLS0g CjEuNy40Cgo= --000e0cd6a97e09e4cc049c212316--