Archived:Issues with MGFetch on S60 3rd Edition (Known Issue)
| ID | KIS000765 | Creation date | October 18, 2007 |
| Platform | S60 3rd Edition | Devices | All (S60 3rd Edition) |
| Category | Symbian C++ | Subcategory | Multimedia |
Overview
MGFetch (class used for fetching filenames for Media Gallery content) requires ReadUserData capability. In addition, on the emulator a check against DRM capability is done by default. When trying to use MGFetch in an application built for GCCE UDEB target, a KERN-EXEC 3 panic is raised.
Description
S60 3rd Edition documentation (SDK help) states that MGFetch does not require any capabilities. However, it returns KErrPermissionDenied (-46) error when used. It works only when the application has ReadUserData capability.
MGFetch::RunL() implementation, when run in emulator, checks for DRM capability by default even if none of the media files are DRM protected.
An application using MGFetch::RunL() and built for GCCE UDEB target raises a KERN-EXEC 3 panic when a media file is selected. This issue occurs because UDEB builds contain debugging code that consumes more stack memory.
How to reproduce
Write an application that uses MGFetch::RunL. Run it in the emulator. Check the EPOCWIND.OUT log file and search for the "*PlatSec* ERROR" string.
EPOCWIND.OUT is the log file created by the S60 emulator. It is by default located under the user's temporary directory (usually C:\Documents and Settings\[Username]\Local Settings\Temp in Windows XP).
Solution
Specify ReadUserData capability.
Increase the stack size in the .mmp project definition file:
EPOCSTACKSIZE 0x5000

