In MSRPC_WriteMessage, call MSRPC_NewCall after checking for
MAX_RPC_MSG_SIZE and return an error if MSRPC_NewCall fails.
LICENSE MIT
Reviewed-on: http://gerrit.openafs.org/339
Reviewed-by: Asanka Herath <asanka@secure-endpoints.com>
Tested-by: Asanka Herath <asanka@secure-endpoints.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
*/
int
MSRPC_WriteMessage(msrpc_conn * conn, BYTE * buffer, unsigned int len,
- cm_user_t * userp)
+ cm_user_t * userp)
{
msrpc_call * call;
if (len == 0)
return CM_ERROR_INVAL;
- call = MSRPC_NewCall();
-
if (len > MAX_RPC_MSG_SIZE)
return CM_ERROR_BUFFERTOOSMALL;
+ call = MSRPC_NewCall();
+ if (!call)
+ return ENOMEM;
+
MSRPC_AllocBuffer(&call->in, len);
memcpy(call->in.buf_data, buffer, len);
call->in.buf_pos = len;