Guotao Yu created DIRKRB-777:
--------------------------------

             Summary: Cannot decode HostAddress using CredCacheInputStream
                 Key: DIRKRB-777
                 URL: https://issues.apache.org/jira/browse/DIRKRB-777
             Project: Directory Kerberos
          Issue Type: Bug
    Affects Versions: 2.1.0
            Reporter: Guotao Yu


In CredCacheOutputStream, HostAddress is serialized in this way.

 
{code:java}
public void writeAddress(HostAddress address) throws IOException {
    write(address.getAddrType().getValue());
    write(address.getAddress().length);
    write(address.getAddress(), 0,
          address.getAddress().length);
} {code}
HostAddrType is serialized as an int type, However, in CredCacheInputStream, it 
is read as a short type.
{code:java}
public HostAddress readAddress() throws IOException {
    int typeValue = readShort();
    HostAddrType addrType = HostAddrType.fromValue(typeValue);
    if (addrType == HostAddrType.NONE) {
        throw new IOException("Invalid host address type");
    }
    byte[] addrData = readCountedOctets();
    if (addrData == null) {
        throw new IOException("Invalid host address data");
    }
    HostAddress addr = new HostAddress();
    addr.setAddrType(addrType);
    addr.setAddress(addrData);

    return addr;
} {code}
This results in the deserialized HostAddrType being an illegal type.
So for me the library is unusable.
h4. 

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@directory.apache.org
For additional commands, e-mail: dev-h...@directory.apache.org

Reply via email to