Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/ipc/sysipc.c

    rf6bffee r228e490  
    248248                        /* The connection was accepted */
    249249                        phone_connect(phoneid, &answer->sender->answerbox);
    250                         /* Set 'task hash' as arg4 of response */
    251                         IPC_SET_ARG4(answer->data, (sysarg_t) TASK);
    252250                        /* Set 'phone hash' as arg5 of response */
    253251                        IPC_SET_ARG5(answer->data,
     
    426424        case IPC_M_DATA_READ: {
    427425                size_t size = IPC_GET_ARG2(call->data);
    428                 if (size <= 0)
     426                if ((size <= 0 || (size > DATA_XFER_LIMIT)))
    429427                        return ELIMIT;
    430                 if (size > DATA_XFER_LIMIT) {
    431                         int flags = IPC_GET_ARG3(call->data);
    432                         if (flags & IPC_XF_RESTRICT)
    433                                 IPC_SET_ARG2(call->data, DATA_XFER_LIMIT);
    434                         else
    435                                 return ELIMIT;
    436                 }
     428               
    437429                break;
    438430        }
     
    441433                size_t size = IPC_GET_ARG2(call->data);
    442434               
    443                 if (size > DATA_XFER_LIMIT) {
    444                         int flags = IPC_GET_ARG3(call->data);
    445                         if (flags & IPC_XF_RESTRICT) {
    446                                 size = DATA_XFER_LIMIT;
    447                                 IPC_SET_ARG2(call->data, size);
    448                         } else
    449                                 return ELIMIT;
    450                 }
     435                if (size > DATA_XFER_LIMIT)
     436                        return ELIMIT;
    451437               
    452438                call->buffer = (uint8_t *) malloc(size, 0);
     
    11171103 *
    11181104 */
    1119 sysarg_t sys_register_irq(inr_t inr, devno_t devno, sysarg_t imethod,
     1105sysarg_t sys_ipc_register_irq(inr_t inr, devno_t devno, sysarg_t imethod,
    11201106    irq_code_t *ucode)
    11211107{
     
    11341120 *
    11351121 */
    1136 sysarg_t sys_unregister_irq(inr_t inr, devno_t devno)
     1122sysarg_t sys_ipc_unregister_irq(inr_t inr, devno_t devno)
    11371123{
    11381124        if (!(cap_get(TASK) & CAP_IRQ_REG))
Note: See TracChangeset for help on using the changeset viewer.