Is there any way that I can check this response message correctly using the short form?
Yes.
You have to write code that pays attention to the number of bytes read.
It should be a trivial matter to determine that no bytes are valid in the buffer versus one (or more) bytes are valid data for parsing.
the initial value of the buffer is 0, or NULL
Your program should not be checking the contents of the buffer unless data has been put there by the read operation.
The read operation should return the number of bytes placed into the buffer, as well as the data. If your program always checks that more than zero bytes have been "read", then the original contents of the buffer should not matter.
Initializing or clearing a buffer prior to a read operation (if not for debugging) is often a crutch for bad/poor code.
You might also be trying to use string techniques (e.g. null termination) with binary data.
Don't do that.
All functional binary protocols have a byte count associated with each variable-length block or datagram of data. Only when dealing with fixed-length transfers or blocks can the length be hard coded.
ADDENDUM
You didn't mention it, but the manual indicates that each terse code is followed by a CR character.
In other words this response is a hybrid of a binary byte value combined with an ASCII line-termination character.
But for proper and reliable input, the read operation should be non-canonical (aka raw), because the ASCII codes for backspace, linefeed and carriage return are also valid terse codes sent by this modem.