c icon indicating copy to clipboard operation
c copied to clipboard

Potential NULL pointer dereference bug in callInternal()

Open hariramshankar opened this issue 5 months ago • 3 comments

In the function callInternal(), client->client->dataReceived is dereferenced unconditionally before it is checked for NULL: https://github.com/kubernetes-client/c/blob/master/kubernetes/src/generic.c#L62

char* callInternal(genericClient_t *client,
                   const char *path, list_t *queryParameters, list_t *headerParameters, list_t *formParameters, list_t *headerType, list_t *contentType, const char *body, const char *method)
{
    apiClient_invoke(client->client, path, queryParameters, headerParameters, formParameters, headerType, contentType, body, method);

    if (client->client->response_code == 401) {
        return NULL;
    }
    char* elementToReturn =  strndup((char*)client->client->dataReceived, client->client->dataReceivedLen); <<<<<<

    if (client->client->dataReceived) {
        free(client->client->dataReceived);
        client->client->dataReceived = NULL;
        client->client->dataReceivedLen = 0;
    }

    return elementToReturn;
}

hariramshankar avatar Sep 19 '24 14:09 hariramshankar