{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":49255227,"defaultBranch":"master","name":"hfsfuse","ownerLogin":"0x09","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-01-08T06:49:26.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/2049278?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1716839581.0","currentOid":""},"activityList":{"items":[{"before":"835032540038e23b862bd24079c73c85d5933894","after":"3a5caf22fcc65da595c27b76aced367c73448e46","ref":"refs/heads/master","pushedAt":"2024-05-27T20:05:43.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"libhfs: fix potential truncation of large contiguous extents\n\nIndividual extents greater than 4gb are possible at least in theory, in\nwhich case hfslib_readd_with_extents would have only read partial data.","shortMessageHtmlLink":"libhfs: fix potential truncation of large contiguous extents"}},{"before":"4cfb690493fa24cbc03e1e91188eb165ce26e332","after":null,"ref":"refs/heads/cross-platform-actions-update","pushedAt":"2024-05-27T19:53:01.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"}},{"before":"9782756591f47aee5b7c11fcc1ca626d99bd3767","after":"4cfb690493fa24cbc03e1e91188eb165ce26e332","ref":"refs/heads/cross-platform-actions-update","pushedAt":"2024-05-27T19:51:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"CI: update checkout action to v4\n\nFixes node 16 deprecation warning.","shortMessageHtmlLink":"CI: update checkout action to v4"}},{"before":"d3175ab24516ecde4522e8e47a591d17de7ea3ce","after":"9782756591f47aee5b7c11fcc1ca626d99bd3767","ref":"refs/heads/cross-platform-actions-update","pushedAt":"2024-05-27T19:47:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"CI: use matrix for building under range of *BSD releases\n\nAdds runs for the most recent supported major versions available via\ncross-platform-actions.","shortMessageHtmlLink":"CI: use matrix for building under range of *BSD releases"}},{"before":"cbc2ee8f86d5e41491b87e76d48d9a9d94d37888","after":"d3175ab24516ecde4522e8e47a591d17de7ea3ce","ref":"refs/heads/cross-platform-actions-update","pushedAt":"2024-05-27T19:38:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"CI: use matrix for building under range of *BSD releases\n\nAdds runs for the most recent supported major versions available via\ncross-platform-actions.","shortMessageHtmlLink":"CI: use matrix for building under range of *BSD releases"}},{"before":"ed43ff7849dcb0dc45c106e958f7a82cfc6a4253","after":"cbc2ee8f86d5e41491b87e76d48d9a9d94d37888","ref":"refs/heads/cross-platform-actions-update","pushedAt":"2024-05-27T19:34:47.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"CI: use matrix for building under range of *BSD releases\n\nAdds runs for the most recent supported major versions available via\ncross-platform-actions.","shortMessageHtmlLink":"CI: use matrix for building under range of *BSD releases"}},{"before":null,"after":"ed43ff7849dcb0dc45c106e958f7a82cfc6a4253","ref":"refs/heads/cross-platform-actions-update","pushedAt":"2024-05-27T19:24:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"CI: update cross-platform-actions and switch to ubuntu runners\n\nOriginally FreeBSD and OpenBSD were only supported on the macOS runners\nusing xhyve, but Ubuntu/qemu are preferred now according to\ncross-platform-actions and may be a bit faster.","shortMessageHtmlLink":"CI: update cross-platform-actions and switch to ubuntu runners"}},{"before":"4217985fb4bb439692fc83fecd7bfb9d23280f39","after":"835032540038e23b862bd24079c73c85d5933894","ref":"refs/heads/master","pushedAt":"2024-05-12T00:07:09.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"hfsuser: remove unused utf8proc_reencode option\n\nUTF8PROC_STABLE is used only for encoding (with UTF8PROC_COMPOSE).","shortMessageHtmlLink":"hfsuser: remove unused utf8proc_reencode option"}},{"before":"c528f3cc0b6a2346e211504f3e1eabfa4d7bdbfa","after":"4217985fb4bb439692fc83fecd7bfb9d23280f39","ref":"refs/heads/master","pushedAt":"2024-05-11T21:42:11.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"hfsfuse: add directory entries to lookup cache when listing\n\nPre-emptively adds records found when listing directories to hfsfuse's\ncache for future lookups. Previously only paths explicitly requested\nby open, getattr, etc were included in the cache.\n\nSince getattr is often called on the results of readdir immediately\nafter, this is in practice multiple times faster for directory listing\nor traversing directories with things like `find`.","shortMessageHtmlLink":"hfsfuse: add directory entries to lookup cache when listing"}},{"before":"44e18ec16bf95dc7aaee411c00d9e96e764b0159","after":"c528f3cc0b6a2346e211504f3e1eabfa4d7bdbfa","ref":"refs/heads/master","pushedAt":"2024-05-11T17:53:27.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"hfsfuse: add mount option to present symlinks as regular files\n\nWith `-o disable_symlinks` these will not act as symbolic links but\nregular files with the link destination as their content.\n\nOffers an alternative means for viewing xattrs of these on systems that\ndon't support user xattrs on symlinks.","shortMessageHtmlLink":"hfsfuse: add mount option to present symlinks as regular files"}},{"before":"3984ff8b0d480ea848b50d744c884154cd6aac76","after":"44e18ec16bf95dc7aaee411c00d9e96e764b0159","ref":"refs/heads/master","pushedAt":"2024-05-11T17:40:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"hfsfuse: add mount option to present symlinks as regular files\n\nWith `-o disable_symlinks` these will not act as symbolic links but\nregular files with the link destination as their content.\n\nOffers an alternative means for viewing xattrs of these on systems that\ndon't support user xattrs on symlinks.","shortMessageHtmlLink":"hfsfuse: add mount option to present symlinks as regular files"}},{"before":"06c945ad63771517ccefa0034b97af0d6dbc6435","after":"3984ff8b0d480ea848b50d744c884154cd6aac76","ref":"refs/heads/master","pushedAt":"2024-05-05T22:10:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"hfsuser: use persistent buffer for aligning reads\n\nPrevents the possibility of larger/future block sizes overflowing the\npreviously stack-allocated buffer for this, at the cost of some\nadditional locking for unaligned reads.","shortMessageHtmlLink":"hfsuser: use persistent buffer for aligning reads"}},{"before":"4dee87fd71c9c608cb352da890ac200b62c5e228","after":"06c945ad63771517ccefa0034b97af0d6dbc6435","ref":"refs/heads/master","pushedAt":"2024-05-05T21:57:41.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"hfsuser: use persistent buffer for aligning reads\n\nPrevents the possibility of larger/future block sizes overflowing the\npreviously stack-allocated buffer for this, at the cost of some\nadditional locking for unaligned reads.","shortMessageHtmlLink":"hfsuser: use persistent buffer for aligning reads"}},{"before":"c71d645b61134736e53fe09e67dbc6944089d713","after":"4dee87fd71c9c608cb352da890ac200b62c5e228","ref":"refs/heads/master","pushedAt":"2024-04-28T20:29:28.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"hfsuser: make decmpfs reading thread safe\n\nAllows concurrent reads within the same 64kb chunk of decompressed data,\nbut blocks if another thread would cause a different chunk to be cached.","shortMessageHtmlLink":"hfsuser: make decmpfs reading thread safe"}},{"before":"29499c04d087be334419a9b73b144f493c7f7b35","after":"c71d645b61134736e53fe09e67dbc6944089d713","ref":"refs/heads/master","pushedAt":"2024-04-23T00:01:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"libhfs: fix check for invalid unicode surrogates\n\nThis was a bit too broad and treated certain valid codepoints over\nU+DFFF as an error when converting UTF-8 to UTF-16, for example the\nApple logo in the BMP private use area (U+F8FF.)","shortMessageHtmlLink":"libhfs: fix check for invalid unicode surrogates"}},{"before":"1566bafaeec6490722dac3820ab1afd5950fc02c","after":"29499c04d087be334419a9b73b144f493c7f7b35","ref":"refs/heads/master","pushedAt":"2024-04-22T03:09:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"hfs_stat: saturate nlink stat field on overflow\n\nOn some platforms (including macOS) nlink_t is a smaller type than the\nfolder record's valence. This represents the number of entries in a\ndirectory, so it's quite possible to overflow this on a normal volume.\n\nhfsfuse now sets st_nlink to the max possible value in this case,\nconsistent with other drivers.","shortMessageHtmlLink":"hfs_stat: saturate nlink stat field on overflow"}},{"before":"0186c12755fab522251e73a687eca3e4628a5d4e","after":"1566bafaeec6490722dac3820ab1afd5950fc02c","ref":"refs/heads/master","pushedAt":"2024-04-22T03:07:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"hfs_stat: saturate nlink stat field on overflow\n\nOn some platforms (including macOS) nlink_t is a smaller type than the\nfolder record's valence. This represents the number of entries in a\ndirectory, so it's quite possible to overflow this on a normal volume.\n\nhfsfuse now sets st_nlink to the max possible value in this case,\nconsistent with other drivers.","shortMessageHtmlLink":"hfs_stat: saturate nlink stat field on overflow"}},{"before":"80b9302df112889549807733095cbfa9c39c8594","after":"0186c12755fab522251e73a687eca3e4628a5d4e","ref":"refs/heads/master","pushedAt":"2024-04-22T02:52:01.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"hfs_stat: saturate nlink stat field on overflow\n\nOn some platforms (including macOS) nlink_t is a smaller type than the\nfolder record's valence. This represents the number of entries in a\ndirectory, so it's quite possible to overflow this on a normal volume.\n\nhfsfuse now sets st_nlink to the max possible value in this case,\nconsistent with other drivers.","shortMessageHtmlLink":"hfs_stat: saturate nlink stat field on overflow"}},{"before":"2b6087b2700f65a9078c316960b261f391ed7876","after":"80b9302df112889549807733095cbfa9c39c8594","ref":"refs/heads/master","pushedAt":"2024-04-21T05:09:33.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"hfsuser: treat orphaned hard links as regular files\n\nFixes an odd case where files may have the hard link file type code but\nwhich are otherwise regular files, with data in their own catalog record\nand no associated inode entry.\nPreviously files like this appeared in directory listings but would not\nexist when read from.\n\nThis change matches the behavior of Apple's driver.","shortMessageHtmlLink":"hfsuser: treat orphaned hard links as regular files"}},{"before":"5fe04ec66bccd8eeef7ab477b06b86b1af55c6d0","after":"2b6087b2700f65a9078c316960b261f391ed7876","ref":"refs/heads/master","pushedAt":"2024-04-20T20:56:42.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"hfsfuse: fix fullhelp option with macFUSE\n\nMost FUSE implementations accept a NULL mount point when just printing\nhelp from fuse_mount, but macFUSE copies this with strncpy before option\nparsing (at least according to the last source release.)\nOn the other hand all implementations work with an empty string.","shortMessageHtmlLink":"hfsfuse: fix fullhelp option with macFUSE"}},{"before":"b79c19b9f94e34107853a5e85a3543bcbbcc9ba3","after":"5fe04ec66bccd8eeef7ab477b06b86b1af55c6d0","ref":"refs/heads/master","pushedAt":"2024-04-20T06:31:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"hfsfuse: list xattrs for all file types when not using the user namespace","shortMessageHtmlLink":"hfsfuse: list xattrs for all file types when not using the user names…"}},{"before":"9a8ff0b7598604741d0615d98372f3ebc686a4b3","after":"b79c19b9f94e34107853a5e85a3543bcbbcc9ba3","ref":"refs/heads/master","pushedAt":"2024-04-20T03:43:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"Makefile: allow XATTR_NAMESPACE to be overridden by config.mak\n\nAlso restores the use of git archive added in ed62228b7a7c97bde00f0eddb16270cf4647bd76\nwhich was temporarily reverted.","shortMessageHtmlLink":"Makefile: allow XATTR_NAMESPACE to be overridden by config.mak"}},{"before":"9ee8d00210f0768f4b6008e2bd2acb1b08367dd3","after":"9a8ff0b7598604741d0615d98372f3ebc686a4b3","ref":"refs/heads/master","pushedAt":"2024-04-20T02:40:31.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"hfsfuse: make extended attribute namespace configurable\n\nChanges this to a build-time make parameter XATTR_NAMESPACE which can\nbe used to select other namespaces than the OS default.\n\nAllows the platform dependent checks for this to be moved out to the\nbuild system and provides a means for accessing symlink extended\nattributes on Linux, which can't be read under the user namespace.","shortMessageHtmlLink":"hfsfuse: make extended attribute namespace configurable"}},{"before":"cc49395548d97d94e22e350f596895d3b8ccc51b","after":"9ee8d00210f0768f4b6008e2bd2acb1b08367dd3","ref":"refs/heads/master","pushedAt":"2024-04-20T02:38:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"hfsfuse: make extended attribute namespace configurable\n\nChanges this to a build-time make parameter XATTR_NAMESPACE which can\nbe used to select other namespaces than the OS default.\nAllows the platform dependent checks for this to be moved out to the\nbuild system and provides a means for accessing symlink extended\nattributes on Linux, which can't be read under the user namespace.","shortMessageHtmlLink":"hfsfuse: make extended attribute namespace configurable"}},{"before":"5a7de8c4bde3daaca12e70eda4e723ca33f36fe2","after":"cc49395548d97d94e22e350f596895d3b8ccc51b","ref":"refs/heads/master","pushedAt":"2024-04-19T06:45:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"libhfs: fix memory corruption in certain extent record lookups\n\nThis could occur during extent lookup when a thread record with a name\nlonger than 123 characters preceded the target file in the same B-tree\nnode, which resulted in an out of bounds write to the stack that\npartially corrupted the neighboring input search key.\n\nIn practice this resulted in libhfs being unable to find extent records\nfor the affected files, resulting in an error when attempting to read\nthem.","shortMessageHtmlLink":"libhfs: fix memory corruption in certain extent record lookups"}},{"before":"2ab526c09e11aa7a27ffeb9fee122e2f98da5b47","after":"5a7de8c4bde3daaca12e70eda4e723ca33f36fe2","ref":"refs/heads/master","pushedAt":"2024-04-19T00:19:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"hfsfuse: re-allow listing directory xattrs on Linux\n\nDirectories are included along with regular files in the types permitted\nto have user-namespace xattrs, so should be allowed by the check added\nin 2ab526c09e11aa7a27ffeb9fee122e2f98da5b47","shortMessageHtmlLink":"hfsfuse: re-allow listing directory xattrs on Linux"}},{"before":"529cb8b37f6305cc3719822aba687b59c27df822","after":"2ab526c09e11aa7a27ffeb9fee122e2f98da5b47","ref":"refs/heads/master","pushedAt":"2024-04-18T05:15:23.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"hfsfuse: omit listing xattrs for non-regular files on Linux\n\nLinux only permits user-namespace extended attributes on regular files,\nand while attribute names for other file types can be listed, they\ncannot be accessed by the (l)getxattr syscalls or any userspace tools.\n\nFixes \"No such attribute\" errors when attempting to list/print xattrs\non things like symlinks and directories.\n\nAttributes for these types of files are still accessible on Linux via\n`hfsdump stat` and `hfsdump xattr`.","shortMessageHtmlLink":"hfsfuse: omit listing xattrs for non-regular files on Linux"}},{"before":"295e58afa0079bd045694a1cbc4d571aabdef031","after":"529cb8b37f6305cc3719822aba687b59c27df822","ref":"refs/heads/master","pushedAt":"2024-04-18T00:01:17.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"hfsfuse: ensure readlink result is NUL terminated\n\nThis is required by libfuse, which needs a valid C string to determine\nthe length of the returned link destination.\n\nFixes a potential read and disclosure of uninitialized memory of up to\nPATH_MAX bytes when reading link destinations on a mounted filesystem.\nBytes following PATH_MAX are terminated by FUSE.\n\nThanks to @sbond75 for finding this.","shortMessageHtmlLink":"hfsfuse: ensure readlink result is NUL terminated"}},{"before":"695463cf242a4ad02b9c465b827b045593071254","after":"295e58afa0079bd045694a1cbc4d571aabdef031","ref":"refs/heads/master","pushedAt":"2024-04-13T20:50:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"Makefile: add src/ objects to the vpath\n\nAllows building hfsfuse and hfsdump using only implicit rules.","shortMessageHtmlLink":"Makefile: add src/ objects to the vpath"}},{"before":"9d641ead2b36c4c3738fbbb431183b41765b76e5","after":"695463cf242a4ad02b9c465b827b045593071254","ref":"refs/heads/master","pushedAt":"2024-04-02T23:32:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0x09","name":"tab","path":"/0x09","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2049278?s=80&v=4"},"commit":{"message":"Makefile: skip feature detection for non-build targets\n\nIf all make targets are not build related (e.g. make clean), feature\ndetection using the compiler will no longer be run / print results\nunnecessarily.","shortMessageHtmlLink":"Makefile: skip feature detection for non-build targets"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEVTQnewA","startCursor":null,"endCursor":null}},"title":"Activity · 0x09/hfsfuse"}