Skip to content

on ppc64le credentials are wrongly parsed/obtained #88

Open
@judovana

Description

@judovana

Hello!

When running on ppc64le, the test

assertEquals("Current PID should match client credentials",
fails correctly, expecting pid, but getting 1.
If the test would continue, it would fail anyway, as all three pid, uid and gid are parsed wrongly during credential initialisation

linux x linux
myPid: 42170 # three real values
myUid: 1001
myGid: 1001

cc uid: 16383 # wrong client credentials
cc pid: 1
cc gid: -2070423904
sc uid: 16383 # samely wrong server credentials
sc pid: 1
sc gid: -2070421584

The values above are exemplar. They differs, canbe positive, but error is obvious.

I had debugged it into:

static Credentials getCredentials(int fd) {

Which leads to jnr-ffi 's : https://github.com/jnr/jnr-ffi/blob/05cbacc8528e85b1dbff30be5b88cde4c6a9c6a7/src/main/java/jnr/ffi/Struct.java#L865 wehre it leaves my current knowlege a bit.

Suspicion is going to endians or basic size type. Will continue digging.

Note, I had run all jnr-* tests on this ppc64le machine and no other projects (including ffi) had any issues. Only this one unixsocket's CredentialsFunctionalTest

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions