Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.23.4 #4

Merged
merged 22 commits into from
Jun 14, 2024
Merged

0.23.4 #4

merged 22 commits into from
Jun 14, 2024

Conversation

umjammer
Copy link
Owner

No description provided.

unsound and others added 22 commits June 13, 2022 18:34
This makes sure these values are never used for calculations in a signed
form. Accessors for the raw form of these values have been added as well
for completeness.
APMPartition assumed a struct size of 512, but it varies with the block
size as specified in the driver descriptor record (a partition always
occupies a full block).
Thus the data returned by ApplePartitionMap.getData(...) was incorrect
and omitted the padding required to fill a whole block, instead laying
out the entries as if they were using 512 bytes as block size.
Fixed by making the pmPad field variable-sized and not static and
copying all the data of the partition entry.
When building an AppleSingle/AppleDouble file with multiple extended
attributes whose descriptors didn't end at an alignment boundary we
would end up writing the descriptors to an incorrect offset, causing a
corrupted attribute list.
The patched code was supposed to add an attribute record to an existing
one if the name matched. Instead it ended up never adding attribute
records that didn't match the existing last one.
The data offsets were incorrectly recorded in the AttributeEntry, and
they weren't aligned properly.
This should be referring to the end of this entry and the start of the
next one, but with padding which is usually applied to the FinderInfo /
extended attributes entry, this isn't always accurate.
Since we didn't know how many bytes have been allocated with padding, we
add another 'length' parameter to the getBytes(...) prototype and pass
the allocated size down to the FinderInfoEntry logic.
This was a mistake. The start of the value range should be aligned but
after that point aligning values is not what macOS expects and it won't
display the attribute if we do this.
suse jpl instead of jul
clean up
@umjammer umjammer merged commit 31950a8 into master Jun 14, 2024
3 checks passed
@umjammer umjammer deleted the 0.23.4 branch June 14, 2024 16:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants