mailing list of musl libc
 help / color / mirror / code / Atom feed
* Bug in getaddrinfo
@ 2018-06-21 22:04 Marco Dickert
  2018-06-22  2:26 ` Rich Felker
  0 siblings, 1 reply; 4+ messages in thread
From: Marco Dickert @ 2018-06-21 22:04 UTC (permalink / raw)
  To: musl

[-- Attachment #1: Type: text/plain, Size: 777 bytes --]

Hi all.

I found a bug in the musl implementation of getaddrinfo(). It apparently returns
a bad ai_canonname value. I used this [1] code to produce the following results
on an alpine linux (edge):

----
alpine:~# ./addrinfo-test mail.misterunknown.de
Result 0 0xda051c83080
Canonname mail.misterunknown.de
alpine:~# ./addrinfo-test mail.misterunknown.de.
Result 0 0x53f7dac4080
Canonname mail.misterunknown.de.
----

The problem is the trailing dot in the Commonname in the second example, which
should not be there. See also this [2] bug report I opened in the first place.

Cheers,
Marco

[1] https://pastebin.com/nypMzhCb
[2] https://gitlab.isc.org/isc-projects/bind9/issues/354

-- 
Marco Dickert
marco@misterunknown.de
https://misterunknown.de

[-- Attachment #2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 5022 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Bug in getaddrinfo
  2018-06-21 22:04 Bug in getaddrinfo Marco Dickert
@ 2018-06-22  2:26 ` Rich Felker
  2018-06-26  9:36   ` Marco Dickert
  0 siblings, 1 reply; 4+ messages in thread
From: Rich Felker @ 2018-06-22  2:26 UTC (permalink / raw)
  To: Marco Dickert; +Cc: musl

[-- Attachment #1: Type: text/plain, Size: 1429 bytes --]

On Fri, Jun 22, 2018 at 12:04:31AM +0200, Marco Dickert wrote:
> Hi all.
> 
> I found a bug in the musl implementation of getaddrinfo(). It apparently returns
> a bad ai_canonname value. I used this [1] code to produce the following results
                                        ^^^
Please attach testcases rather than linking to transient pastebins.
I've saved and attached the linked code here.

> on an alpine linux (edge):
> 
> ----
> alpine:~# ./addrinfo-test mail.misterunknown.de
> Result 0 0xda051c83080
> Canonname mail.misterunknown.de
> alpine:~# ./addrinfo-test mail.misterunknown.de.
> Result 0 0x53f7dac4080
> Canonname mail.misterunknown.de.
> ----
> 
> The problem is the trailing dot in the Commonname in the second example, which
> should not be there. See also this [2] bug report I opened in the first place.

Per POSIX,

    if the canonical name is not available, then ai_canonname shall
    refer to the nodename argument or a string with the same contents.

It's not entirely clear what "available" means, but I think it's
generally interpreted as meaning "the requested name is a CNAME".

On the other hand we already define availability for another case,
search domains, where a duplicate of the requested nodename argument
is not returned, so I think it's reasonable to make a change here too,
especially if that's what other implementations do. I'll take a look
at it.

Thanks for the report.

Rich

[-- Attachment #2: addrinfo-test.c --]
[-- Type: text/plain, Size: 592 bytes --]

#include <sys/types.h>

#include <sys/socket.h>

#include <netdb.h>

#include <stdio.h>

#include <string.h>



int main(int argc, char** argv) {

     struct addrinfo hints, *ai;

     int result;

     memset(&hints, 0, sizeof(hints));

     hints.ai_flags = AI_CANONNAME;

     hints.ai_family = PF_UNSPEC;

     hints.ai_socktype = SOCK_STREAM;

     hints.ai_protocol = IPPROTO_TCP;

     result = getaddrinfo(argv[1], NULL, &hints, &ai);

     printf("Result %d %p\n", result, ai);

     if (result == 0 && ai != NULL) {

          printf("Canonname %s\n", ai->ai_canonname);

     }

}

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Bug in getaddrinfo
  2018-06-22  2:26 ` Rich Felker
@ 2018-06-26  9:36   ` Marco Dickert
  2018-06-26 20:40     ` Rich Felker
  0 siblings, 1 reply; 4+ messages in thread
From: Marco Dickert @ 2018-06-26  9:36 UTC (permalink / raw)
  To: Rich Felker; +Cc: musl

[-- Attachment #1: Type: text/plain, Size: 964 bytes --]

Hi,

On 2018-06-21 22:26:40, Rich Felker wrote:
> On Fri, Jun 22, 2018 at 12:04:31AM +0200, Marco Dickert wrote:
> > a bad ai_canonname value. I used this [1] code to produce the following results
>                                         ^^^
> Please attach testcases rather than linking to transient pastebins.
> I've saved and attached the linked code here.

thank you. I should've attached the code indeed; don't know what I thought^^

> On the other hand we already define availability for another case,
> search domains, where a duplicate of the requested nodename argument
> is not returned, so I think it's reasonable to make a change here too,
> especially if that's what other implementations do. I'll take a look
> at it.

Nice to hear. 

> Thanks for the report.

While were on it: Thanks for the great work with musl libc! I really appreciate
it!

Cheers,
-- 
Marco Dickert
marco@misterunknown.de
https://misterunknown.de

[-- Attachment #2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 5022 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Bug in getaddrinfo
  2018-06-26  9:36   ` Marco Dickert
@ 2018-06-26 20:40     ` Rich Felker
  0 siblings, 0 replies; 4+ messages in thread
From: Rich Felker @ 2018-06-26 20:40 UTC (permalink / raw)
  To: musl

On Tue, Jun 26, 2018 at 11:36:08AM +0200, Marco Dickert wrote:
> Hi,
> 
> On 2018-06-21 22:26:40, Rich Felker wrote:
> > On Fri, Jun 22, 2018 at 12:04:31AM +0200, Marco Dickert wrote:
> > > a bad ai_canonname value. I used this [1] code to produce the following results
> >                                         ^^^
> > Please attach testcases rather than linking to transient pastebins.
> > I've saved and attached the linked code here.
> 
> thank you. I should've attached the code indeed; don't know what I thought^^
> 
> > On the other hand we already define availability for another case,
> > search domains, where a duplicate of the requested nodename argument
> > is not returned, so I think it's reasonable to make a change here too,
> > especially if that's what other implementations do. I'll take a look
> > at it.
> 
> Nice to hear. 
> 
> > Thanks for the report.
> 
> While were on it: Thanks for the great work with musl libc! I really appreciate
> it!

Should be fixed in git master. Let me know if you see any problems.

Rich


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-06-26 20:40 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-21 22:04 Bug in getaddrinfo Marco Dickert
2018-06-22  2:26 ` Rich Felker
2018-06-26  9:36   ` Marco Dickert
2018-06-26 20:40     ` Rich Felker

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).