Changeset 27526e87 in mainline for kernel/generic/src/ipc/ipc.c


Ignore:
Timestamp:
2008-09-09T19:24:42Z (16 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
0320823
Parents:
e40e3007
Message:

Kernel's ipc_data_t and uspace's ipc_call_t must be in sync.

This commit fixes a problem introduced in revision 3362, when
ipc_data_t was enlarged by the caller_phone member. This resulted
in sys_ipc_wait_for_call() passing larger structure to uspace
than requested, leading to a random damage of userspace memory.

File:
1 edited

Legend:

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

    re40e3007 r27526e87  
    202202
    203203        if (call->flags & IPC_CALL_FORWARDED) {
    204                 if (call->data.caller_phone) {
     204                if (call->caller_phone) {
    205205                        /* Demasquerade the caller phone. */
    206                         call->data.phone = call->data.caller_phone;
     206                        call->data.phone = call->caller_phone;
    207207                }
    208208        }
     
    361361
    362362        if (mode & IPC_FF_ROUTE_FROM_ME) {
    363                 if (!call->data.caller_phone)
    364                         call->data.caller_phone = call->data.phone;
     363                if (!call->caller_phone)
     364                        call->caller_phone = call->data.phone;
    365365                call->data.phone = newphone;
    366366        }
Note: See TracChangeset for help on using the changeset viewer.