Archived:Binary-incompatible change in Open C to require proper permission checks for creating IPC resources (Known Issue)
debjit.roy
(Talk | contribs) (Debjit.roy -) |
hamishwillee
(Talk | contribs) m (moved Binary-incompatible change in Open C to require proper permission checks for creating IPC resources (Known Issue) to Archived:Binary-incompatible change in Open C to require proper permission checks for creating IPC resources (Known Issue)) |
||
| (5 intermediate revisions by one user not shown) | |||
| Line 1: | Line 1: | ||
| − | [[Category:Symbian C++]][[Category:Open C/C++]][[Category:Known Issue]][[Category:S60 3rd Edition]] | + | {{Archived|timestamp=20120223111221|user=roy.debjit| }} |
| − | {{ | + | [[Category:Symbian C++]][[Category:Open C/C++]][[Category:Known Issue]][[Category:S60 3rd Edition (initial release)]][[Category:Compatibility]][[Category:Symbian]] |
| − | + | {{Abstract|This known issue outlines binary incompatible changes to the Open C architecture in the next release. These changes will improve the performance and better adhere to POSIX standards.}} | |
| − | + | ||
| − | + | ||
| − | | | + | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| + | {{ArticleMetaData <!-- v1.2 --> | ||
|sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) --> | |sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) --> | ||
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) --> | |installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) --> | ||
| − | |sdk=<!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) --> | + | |devices= All (S60 3rd Edition devices) |
| − | |devicecompatability=<!-- Compatible devices (e.g.: All* (must have GPS) ) --> | + | |sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) --> |
| − | |signing=<!-- Empty or one of Self-Signed, DevCert, Manufacturer --> | + | |platform= S60 3rd Edition |
| − | |capabilities=<!-- Capabilities required (e.g. Location, NetworkServices. | + | |devicecompatability= <!-- Compatible devices (e.g.: All* (must have GPS) ) --> |
| − | |author=[[User:Technical writer 1]] | + | |dependencies= <!-- Any other/external dependencies e.g.: Google Maps Api v1.0 --> |
| + | |signing= <!-- Empty or one of Self-Signed, DevCert, Manufacturer --> | ||
| + | |capabilities= <!-- Capabilities required by the article/code example (e.g. Location, NetworkServices. --> | ||
| + | |keywords= <!-- APIs, classes and methods (e.g. QSystemScreenSaver, QList, CBase --> | ||
| + | |language= <!-- Language category code for non-English topics - e.g. Lang-Chinese --> | ||
| + | |translated-by= <!-- [[User:XXXX]] --> | ||
| + | |translated-from-title= <!-- Title only --> | ||
| + | |translated-from-id= <!-- Id of translated revision --> | ||
| + | |review-by= <!-- After re-review: [[User:username]] --> | ||
| + | |review-timestamp= <!-- After re-review: YYYYMMDD --> | ||
| + | |update-by= <!-- After significant update: [[User:username]]--> | ||
| + | |update-timestamp= <!-- After significant update: YYYYMMDD --> | ||
| + | |creationdate= 20080820 | ||
| + | |author= [[User:Technical writer 1]] | ||
| + | <!-- The following are not in current metadata --> | ||
| + | |id= KIS001077 | ||
}} | }} | ||
| − | |||
| − | |||
| − | |||
==Description== | ==Description== | ||
| − | Proper permissions must now be defined when creating IPC (inter-process communication) resources ( | + | Proper permissions must now be defined when creating IPC (inter-process communication) resources ({{Icode|shm}}, {{Icode|semaphore}}, and {{Icode|msgqueue}}). The flag argument (value) can no longer be just {{Icode|IPC_CREAT}}. Specifying only {{Icode|IPC_CREAT}} means that the IPC resource is created with absolutely no permissions, and will result in {{Icode|EACCESS}} error. |
==How to reproduce== | ==How to reproduce== | ||
| Line 35: | Line 39: | ||
==Solution== | ==Solution== | ||
| − | Starting from the next Open C release, | + | Starting from the next Open C release, {{Icode|IPC_CREAT}} has to be OR-ed with {{Icode|READ (0400)}} or/and {{Icode|WRITE (0200)}} permission. |
Latest revision as of 10:00, 15 June 2012
Archived: This article is archived because it is not considered relevant for third-party developers creating commercial solutions today. If you think this article is still relevant, let us know by adding the template {{ReviewForRemovalFromArchive|user=~~~~|write your reason here}}.
This known issue outlines binary incompatible changes to the Open C architecture in the next release. These changes will improve the performance and better adhere to POSIX standards.
Article Metadata
Tested with
Devices(s): All (S60 3rd Edition devices)
Compatibility
Platform(s): S60 3rd Edition
Article
Created: User:Technical writer 1
(20 Aug 2008)
Last edited: hamishwillee
(15 Jun 2012)
Description
Proper permissions must now be defined when creating IPC (inter-process communication) resources (shm, semaphore, and 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 */
Solution
Starting from the next Open C release, IPC_CREAT has to be OR-ed with READ (0400) or/and WRITE (0200) permission.

