Skip to content

Conversation

@luhring
Copy link
Contributor

@luhring luhring commented Jun 17, 2024

This is a follow-up to #1944. Using String() works mostly for sorting, but I expected String() to return a simple filepath, and instead it returns a funky string like: Location<id=72 RealPath="usr/lib/go/pkg/tool/linux_amd64/buildid">.

This causes issues because the id=<...> value will be sorted lexically, and more than that, it looks like for most paths in Syft, this id value is controlled by an auto-incrementing global variable, so its value will vary quite widely across different execution contexts.

(I'm not sure if anything is depending on this kind of Location< .... > string value... If not, it could potentially be worth considering changing String() to return the RealPath or AccessPath to be friendlier to library consumers.)

This PR updates the sorting logic to use the RealPath for now, which should be stable. Holler if this assumption is incorrect for any reason!

Signed-off-by: Dan Luhring <dluhring@chainguard.dev>
@wagoodman wagoodman added the bug Something isn't working label Jun 18, 2024
@wagoodman wagoodman merged commit cb18897 into anchore:main Jun 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants