Commit 9fb0362d authored by Ondřej Kuzník's avatar Ondřej Kuzník Committed by Quanah Gibson-Mount
Browse files

ITS#9124 Check we have data to process in Cancel Exop

parent 79acba5d
......@@ -34,7 +34,8 @@ int cancel_extop( Operation *op, SlapReply *rs )
Operation *o;
int rc;
int opid;
BerElement *ber;
BerElementBuffer berbuf;
BerElement *ber = (BerElement *)&berbuf;
assert( ber_bvcmp( &slap_EXOP_CANCEL, &op->ore_reqoid ) == 0 );
......@@ -43,12 +44,14 @@ int cancel_extop( Operation *op, SlapReply *rs )
return LDAP_PROTOCOL_ERROR;
}
ber = ber_init( op->ore_reqdata );
if ( ber == NULL ) {
rs->sr_text = "internal error";
return LDAP_OTHER;
if ( op->ore_reqdata->bv_len == 0 ) {
rs->sr_text = "empty request data field";
return LDAP_PROTOCOL_ERROR;
}
/* ber_init2 uses reqdata directly, doesn't allocate new buffers */
ber_init2( ber, op->ore_reqdata, 0 );
if ( ber_scanf( ber, "{i}", &opid ) == LBER_ERROR ) {
rs->sr_text = "message ID parse failed";
return LDAP_PROTOCOL_ERROR;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment