So, this has been happening on my new macOS system running macOS 12.1 (Monterey).
It would seem as if the system-supplied glob(3) is returning an invalid
result where the gl_pathc field is apparently correct, but gl_pathv is
still NULL.
Has anyone else seen this or anything similar (i.e. esp. on macOS)?
22:40 [1.2194] # lldb ./pkg_delete
Breakpoint 1: no locations (pending).
Breakpoint set in dummy target, will get copied into future targets.
error: invalid target, create a target using the 'target create' command
(lldb) target create "./pkg_delete"
Current executable set to '/private/var/package-obj/root/pkgtools/pkg_install/work/pkg_install-20211115/delete/pkg_delete' (x86_64).
(lldb) run yajl
Process 78463 launched: '/private/var/package-obj/root/pkgtools/pkg_install/work/pkg_install-20211115/delete/pkg_delete' (x86_64)
pkg_delete(78463,0x1000b4600) malloc: adding guard pages for large allocator blocks
pkg_delete(78463,0x1000b4600) malloc: enabling scribbling to detect mods to free blocks
pkg_delete(78463,0x1000b4600) malloc: enabling abort() on bad malloc or free
pkg_delete(78463,0x1000b4600) malloc: checks heap after operation #1 and each 1 operations
pkg_delete(78463,0x1000b4600) malloc: will abort on heap corruption
Process 78463 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
frame #0: 0x000000010000430b pkg_delete`remove_files(path="/opt/pkg/.pkgdb/yajl-2.1.0nb1", pattern="+*") at file.c:275:14
272
273 /* deleting globbed files */
274 for (j = 0; j < globbed.gl_pathc; j++)
-> 275 if (unlink(globbed.gl_pathv[j]) < 0)
276 warn("can't delete ``%s''", globbed.gl_pathv[j]);
277
278 return;
Target 0: (pkg_delete) stopped.
(lldb) v
(const char *) path = 0x0000600002c00000 "/opt/pkg/.pkgdb/yajl-2.1.0nb1"
(const char *) pattern = 0x0000000100019d36 "+*"
(char [1024]) fpath = "/opt/pkg/.pkgdb/yajl-2.1.0nb1/+*"
(glob_t) globbed = {
gl_pathc = 8
gl_matchc = 0
gl_offs = 8
gl_flags = 1
gl_pathv = 0x0000000000000000
gl_errfunc = 0x00007ff700000120 (0x00007ff700000120)
gl_closedir = 0x0000600002100050 (0x0000600002100050)
gl_readdir = 0x0000000000000000
gl_opendir = 0xf68c0000c0001000 (0xf68c0000c0001000)
gl_lstat = 0x000001ffbfefffff (0x000001ffbfefffff)
gl_stat = 0x0000000000000080 (0x0000000000000080)
}
(int) i = 0
(size_t) j = 0
(lldb)
$ l /opt/pkg/.pkgdb/yajl-2.1.0nb1/+*
/opt/pkg/.pkgdb/yajl-2.1.0nb1/+BUILD_INFO
/opt/pkg/.pkgdb/yajl-2.1.0nb1/+BUILD_VERSION
/opt/pkg/.pkgdb/yajl-2.1.0nb1/+COMMENT
/opt/pkg/.pkgdb/yajl-2.1.0nb1/+CONTENTS
/opt/pkg/.pkgdb/yajl-2.1.0nb1/+DESC
/opt/pkg/.pkgdb/yajl-2.1.0nb1/+REQUIRED_BY
/opt/pkg/.pkgdb/yajl-2.1.0nb1/+SIZE_ALL
/opt/pkg/.pkgdb/yajl-2.1.0nb1/+SIZE_PKG
$
Hopefully soon I'll get a chance to try glob(3) with a smaller test program.
--
Greg A. Woods <gwoods%acm.org@localhost>
Kelowna, BC +1 250 762-7675 RoboHack <woods%robohack.ca@localhost>
Planix, Inc. <woods%planix.com@localhost> Avoncote Farms <woods%avoncote.ca@localhost>
Attachment:
pgpjlkjJmQGJQ.pgp
Description: OpenPGP Digital Signature