git-lfs / gitobj

gitobj reads and writes Git objects.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Filemode data type does not support operating systems with 32bit S_IFMT

dustin-ward opened this issue · comments

The Filemode variable in tree.go:212 is not large enough to support operating systems with 32bit S_IFMT constants. In zOS for example, S_IFMT = 0xFF000000. The current implementation will not run on zOS due to overflow errors.

Perhaps increasing to an int64 would help compatibility?

Hey,

Thanks for reporting this. This value is supposed to use the Git internal values, and not the system values. While most Unix systems use the same constants, apparently zOS doesn't, so we should fix this so it parses the data according to how Git stores it.