php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #79561 dns_get_record() fails with DNS_ALL
Submitted: 2020-05-03 17:48 UTC Modified: 2020-05-04 14:29 UTC
From: anrdaemon at yandex dot ru Assigned: cmb (profile)
Status: Closed Package: *Network Functions
PHP Version: 7.4.5 OS: Windows
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If this is not your bug, you can add a comment by following this link.
If this is your bug, but you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: anrdaemon at yandex dot ru
New email:
PHP Version: OS:

 

 [2020-05-03 17:48 UTC] anrdaemon at yandex dot ru
Description:
------------
It seems, the DNS_CAA resource record is not supported by Windows builds.

Excluding DNS_CAA from DNS_ALL results in successful query.

I think, if library does not support specific RR directly, the relevant bit should be removed from DNS_ALL.


Additionally:

Attempting a raw query with RR=257 results in empty response even if relevant record exists.

F.e. google.com:

> nslookup -type=CAA google.com.
Server:         192.168.1.12
Address:        192.168.1.12#53

Non-authoritative answer:
google.com      rdata_257 = 0 issue "pki.goog"

Authoritative answers can be found from:
google.com      nameserver = ns4.google.com.
google.com      nameserver = ns3.google.com.
google.com      nameserver = ns1.google.com.
google.com      nameserver = ns2.google.com.
ns1.google.com  internet address = 216.239.32.10
ns2.google.com  internet address = 216.239.34.10
ns3.google.com  internet address = 216.239.36.10
ns4.google.com  internet address = 216.239.38.10


> php -r 'print_r(dns_get_record("google.com", 257, $x, $y, true));'
Array
(
)

Possible related: https://bugs.php.net/bug.php?id=52260

Test script:
---------------
<?php

$rr = dns_get_record("www.php.net", DNS_ALL);// & ~DNS_CAA);
print_r($rr);


Expected result:
----------------
A resulting array or false is returned. Silently!

Actual result:
--------------
PHP Warning:  dns_get_record(): Type '251721779' not supported in …

Excluding DNS_CAA from DNS_ALL results in successful query.

Patches

Add a Patch

Pull Requests

Pull requests:

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2020-05-04 13:53 UTC] cmb@php.net
-Status: Open +Status: Verified -Assigned To: +Assigned To: cmb
 [2020-05-04 13:53 UTC] cmb@php.net
Apparently, commit 280e9cb[1] missed to update dns_win32.c.

[1] <http://git.php.net/?p=php-src.git;a=commit;h=280e9cb28d07a69e56ebcde4c368f3053298abe3>
 [2020-05-04 14:29 UTC] cmb@php.net
> I think, if library does not support specific RR directly, the
> relevant bit should be removed from DNS_ALL.

Yes, that's actually the problem, since MSVC runtimes do not yet
support CAA records.
 [2020-05-04 14:46 UTC] cmb@php.net
The following pull request has been associated:

Patch Name: Fix #79561: dns_get_record() fails with DNS_ALL
On GitHub:  https://github.com/php/php-src/pull/5524
Patch:      https://github.com/php/php-src/pull/5524.patch
 [2020-05-04 21:03 UTC] cmb@php.net
Automatic comment on behalf of cmbecker69@gmx.de
Revision: http://git.php.net/?p=php-src.git;a=commit;h=c40a494406aa3606be964b24d224ec4eb0c936e8
Log: Fix #79561: dns_get_record() fails with DNS_ALL
 [2020-05-04 21:03 UTC] cmb@php.net
-Status: Verified +Status: Closed
 
PHP Copyright © 2001-2020 The PHP Group
All rights reserved.
Last updated: Fri Aug 07 15:01:25 2020 UTC