My only concern is that, under the definition of free from the standard:
```
Description
The free function causes the space pointed to by ptr to be deallocated, that is, made available for further allocation. If ptr is a null pointer, no action occurs.
```
So theoretically is it not more verbose then say:
```
if (seplen < 1 || len < 0 || tokens == NULL) {
    free(tokens);
    return NULL;
}
```
Under the assumption that the tokens need to be freed here.