Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/udp/service.c

    r58e8646 rbde5c04  
    570570
    571571        rc = async_data_read_finalize(callid, &enext->epp.remote,
    572             max(size, (ssize_t)sizeof(inet_ep_t)));
     572            max(size, (size_t)sizeof(inet_ep_t)));
    573573        if (rc != EOK) {
    574574                async_answer_0(iid, rc);
     
    596596{
    597597        ipc_callid_t callid;
    598         ssize_t msg_size;
     598        size_t msg_size;
    599599        udp_crcv_queue_entry_t *enext;
    600600        void *data;
    601601        size_t size;
    602         ssize_t off;
     602        size_t off;
    603603        int rc;
    604604
     
    623623        msg_size = enext->msg->data_size;
    624624
    625         rc = async_data_read_finalize(callid, data, max(msg_size - off,
    626             (ssize_t)size));
     625        if (off > msg_size) {
     626                async_answer_0(callid, EINVAL);
     627                async_answer_0(iid, EINVAL);
     628                return;
     629        }
     630
     631        rc = async_data_read_finalize(callid, data, min(msg_size - off, size));
    627632        if (rc != EOK) {
    628633                async_answer_0(iid, rc);
Note: See TracChangeset for help on using the changeset viewer.