×
Namespaces

Variants
Actions
(Difference between revisions)

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
extkbeditor2 (Talk | contribs)
m
hamishwillee (Talk | contribs)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Symbian C++]]
+
{{Archived|timestamp=20120223111221|user=roy.debjit| }}
[[Category:Open C]]
+
[[Category:Symbian C++]][[Category:Open C/C++]][[Category:Known Issue]][[Category:S60 3rd Edition (initial release)]][[Category:Compatibility]][[Category:Symbian]]
[[Category:Known Issue]]
+
{{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.}}
[[Category:S60 3rd Edition]]
+
{{KBKI}}
+
__NOTOC__
+
__NOEDITSECTION__
+
{{KnowledgeBase
+
|id=KIS001077
+
|platform=S60 3rd Edition
+
|devices=All (S60 3rd Edition devices)
+
|category=Open C
+
|subcategory=IPC, Compatibility
+
|creationdate=August 20, 2008
+
|keywords=
+
}}
+
  
==Overview==
+
{{ArticleMetaData <!-- v1.2 -->
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.
+
|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]]) -->
 +
|devices= All (S60 3rd Edition devices)
 +
|sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) -->
 +
|platform= S60 3rd Edition
 +
|devicecompatability= <!-- Compatible devices (e.g.: All* (must have GPS) ) -->
 +
|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 (<tt>shm</tt>, <tt>semaphore</tt, and <tt>msgqueue</tt>). The flag argument (value) can no longer be just <tt>IPC_CREAT</tt>. Specifying only <tt>IPC_CREAT</tt> means that the IPC resource is created with absolutely no permissions, and will result in <tt>EACCESS</tt> error.
+
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 30: Line 39:
  
 
==Solution==
 
==Solution==
Starting from the next Open C release, <tt>IPC_CREAT</tt> has to be OR-ed with <tt>READ (0400)</tt> or/and <tt>WRITE (0200)</tt> permission.
+
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.pngArchived: 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
Symbian
S60 3rd Edition (initial release)
Article
Created: User:Technical writer 1 (20 Aug 2008)
Last edited: hamishwillee (15 Jun 2012)

[edit] 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.

[edit] How to reproduce

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

[edit] Solution

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

This page was last modified on 15 June 2012, at 10:00.
94 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×