On Mon, 4 Aug 2025, RVP wrote:

Looks like pkg_add relies on a bozohttpd-like dir. listing. It should do something like a basename(3) on the `href' links.


Actually, it is[1], but, fetchList(3) is filtering out any links which contain
a `/' --see [2]. (Code added here[3].)

This patch should fix this issue, I think:

```
diff -urN src/external/bsd/fetch.orig/dist/libfetch/common.c 
src/external/bsd/fetch/dist/libfetch/common.c
--- src/external/bsd/fetch.orig/dist/libfetch/common.c  2024-02-03 
01:51:49.790786629 +0000
+++ src/external/bsd/fetch/dist/libfetch/common.c       2025-08-07 
07:17:39.107637144 +0000
@@ -839,8 +839,7 @@
        size_t base_doc_len, name_len, i;
        unsigned char c;

-       if (strchr(name, '/') != NULL ||
-           strcmp(name, "..") == 0 ||
+       if (strcmp(name, "..") == 0 ||
            strcmp(name, ".") == 0)
                return 0;

```

-RVP

[1]: 
https://github.com/NetBSD/src/blob/trunk/external/bsd/pkg_install/dist/lib/pkg_io.c#L271
[2]: 
https://github.com/NetBSD/src/blob/trunk/external/bsd/fetch/dist/libfetch/common.c#L842
[3]: 
https://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/net/libfetch/files/common.c.diff?r1=1.7;r2=1.8;f=h

Reply via email to