If you use the GET /restful/keyring/SID Endpoint, further requests to the keyring will fail.
To reproduce:
Send request to POST /restful/keyring/add Endpoint - This will succede
Send request to GET /restful/keyring/SID Endpoint - This will also succede
Send request to POST /restful/keyring/add Endpoint - This will fail
After this, servald needs to be restartet to access the keyring again.
Note that in order for this bug to occur, you need to supply the GET endpoint with a valid SID so that a match occurs. This seems to be caused by the call to keyring_free_identity(id) at the end of restful_keyring_get in keyring_restful.c. Removing this call seems to fix the issue.
If you use the
GET /restful/keyring/SID
Endpoint, further requests to the keyring will fail.To reproduce:
POST /restful/keyring/add
Endpoint - This will succedeGET /restful/keyring/SID
Endpoint - This will also succedePOST /restful/keyring/add
Endpoint - This will failAfter this, servald needs to be restartet to access the keyring again.
Note that in order for this bug to occur, you need to supply the
GET
endpoint with a valid SID so that a match occurs. This seems to be caused by the call tokeyring_free_identity(id)
at the end ofrestful_keyring_get
inkeyring_restful.c
. Removing this call seems to fix the issue.