better message when request is too large

This commit is contained in:
Jeff Hill
2000-08-25 01:50:34 +00:00
parent 874a254bb9
commit 71598bc0f1
3 changed files with 10 additions and 4 deletions

View File

@@ -2101,8 +2101,13 @@ int camessage (struct client *client, struct message_buffer *recv)
tmp_postsize = ntohs (mp->m_postsize);
msgsize = tmp_postsize + sizeof(*mp);
if (msgsize > bytes_left)
if (msgsize > bytes_left) {
if ( msgsize > recv->cnt ) {
log_header ( "rsrv: CA message received was too large", client, mp, nmsg );
return RSRV_ERROR;
}
return RSRV_OK;
}
/* Have complete message (header + content)
* -> convert the header elements

View File

@@ -64,7 +64,8 @@ void camsgtask (struct client *client)
(int)(sizeof(client->recv.buf)-client->recv.cnt), 0);
if (nchars==0){
if (CASDEBUG>0) {
errlogPrintf ("CAS: nill message disconnect\n");
errlogPrintf ( "CAS: nill message disconnect ( %u bytes request )\n",
sizeof (client->recv.buf) - client->recv.cnt );
}
break;
}

View File

@@ -120,14 +120,14 @@ struct client *create_base_client ()
client->proto = IPPROTO_UDP;
client->minor_version_number = CA_UKN_MINOR_VERSION;
client->send.maxstk = MAX_UDP;
client->send.maxstk = MAX_UDP_SEND;
client->lock = semMutexMustCreate();
client->putNotifyLock = semMutexMustCreate();
client->addrqLock = semMutexMustCreate();
client->eventqLock = semMutexMustCreate();
client->recv.maxstk = ETHERNET_MAX_UDP;
client->recv.maxstk = MAX_UDP_RECV;
return client;
}