Variable length arrays are supported by C99, but having it denoted as "1" confused the compiler and is not defined. Note that because we don't get the inferred NULL terminator, we have to increase the malloc size by one.
This also adds a new user_cmnd_dir variable that stores the canonicalized parent directory of the command to be run.