%define _ux_define tizen2.3
Name: download-provider
Summary: Download the contents in background
-Version: 2.1.56
+Version: 2.1.55
Release: 0
Group: Development/Libraries
License: Apache-2.0
Requires(post): libdevice-node
Requires(post): sqlite
Requires(post): connman
-Requires: security-config
BuildRequires: cmake
BuildRequires: pkgconfig(dlog)
BuildRequires: pkgconfig(gobject-2.0)
#make notify dir in post section for smack
mkdir %{TZ_SYS_DATA}/download-provider
mkdir -p %{_notifydir}
-chown -R web_fw:web_fw %{_notifydir}
chsmack -a 'System::Shared' %{_notifydir}
chsmack -t %{_notifydir}
mkdir -p --mode=0700 %{_databasedir}
-chown -R web_fw:web_fw %{_databasedir}
#chsmack -a 'download-provider' %{_databasedir}
mkdir -p --mode=0700 %{_database_client_dir}
#chsmack -a 'download-provider' %{_database_client_dir}
-chown -R web_fw:web_fw %{_database_client_dir}
-chown -R web_fw:web_fw %{_data_install_path}
%files
%defattr(-,root,root,-)
if (lstat_info.st_mode == fstat_info.st_mode &&
lstat_info.st_ino == fstat_info.st_ino &&
lstat_info.st_dev == fstat_info.st_dev) {
- if (fchown(fd, cred.uid, cred.gid) != 0) {
+ if ((fchown(fd, cred.uid, cred.gid) != 0) ||
+ (fchmod(fd, S_IRUSR | S_IWUSR |
+ S_IRGRP | S_IROTH) != 0)) {
TRACE_ERROR("[ERROR][%d] permission user:%d group:%d",
request->id, cred.uid, cred.gid);
errorcode = DP_ERROR_PERMISSION_DENIED;
TRACE_ERROR("lstat call failed");
errorcode = DP_ERROR_PERMISSION_DENIED;
}
+ if (errorcode == DP_ERROR_NONE && dp_smack_is_mounted() == 1) {
+ // get smack_label from sql
+ char *smack_label = dp_db_get_client_smack_label(slot->pkgname);
+ if (smack_label == NULL) {
+ TRACE_SECURE_ERROR("[SMACK][%d] no label", request->id);
+ errorcode = DP_ERROR_PERMISSION_DENIED;
+ } else {
+ size_t len = str - (saved_path);
+ char *dir_path = (char *)calloc(len + 1, sizeof(char));
+ if (dir_path != NULL) {
+ strncpy(dir_path, saved_path, len);
+ errorcode = dp_smack_set_label(smack_label, dir_path, saved_path);
+ free(dir_path);
+ } else {
+ TRACE_ERROR("[ERROR] calloc");
+ errorcode = DP_ERROR_OUT_OF_MEMORY;
+ }
+ free(smack_label);
+ }
+ }
return errorcode;
}