added buffer length parameters to prevent vulnerability to buffer