Revision as of 13:28, 20 August 2008 by Forum Nokia KB (Talk | contribs)

Archived:Binary-incompatible change in Open C to require proper permission checks for creating IPC resources (Known Issue)

From Nokia Developer Wiki
Jump to: navigation, search


ID KIS001077 Creation date August 20, 2008
Platform S60 3rd Edition Devices All (S60 3rd Edition devices)
Category Open C Subcategory IPC, Compatibility


To improve the performance and better adhere to POSIX standards, the next release of Open C will undergo some changes in the architecture. Some of the changes will also affect the binary compatibility with previous releases.


Proper permissions must now be defined when creating IPC (inter-process communication) resources (shm, semaphore</tt, and <tt>msgqueue). The flag argument (value) can no longer be just IPC_CREAT. Specifying only IPC_CREAT means that the IPC resource is created with absolutely no permissions, and will result in EACCESS error.

How to reproduce

 int msgid;      
struct msqid_ds buf = {0};
msgid = msgget(1000, 512); /* returns with errno = 13 */


Starting from the next Open C release, IPC_CREAT has to be OR-ed with READ (0400) or/and WRITE (0200) permission.

137 page views in the last 30 days.