platform/core/security/security-manager.git
5 years agoAdd core privilege: windowsystem.admin 12/200612/2
Yunjin Lee [Wed, 27 Feb 2019 09:16:28 +0000 (18:16 +0900)]
Add core privilege: windowsystem.admin

- The application with this privilege can change the settings for
services provided by display server, such as the quick panel and softkey
bar.

Change-Id: Ic0d441a820f687d1e36cfe20e7e3ca8a485168d1
Signed-off-by: Yunjin Lee <yunjin-.lee@samsung.com>
5 years agoMake waitpid(WNOHANG) call more explicit to appease SVACE 60/201460/1
Konrad Lipinski [Thu, 14 Mar 2019 09:44:14 +0000 (10:44 +0100)]
Make waitpid(WNOHANG) call more explicit to appease SVACE

Change-Id: I63e7bddca2a729658d9ab8da94587a1780c7d32b

5 years agoRelease 1.5.0 71/200871/4 accepted/tizen/unified/20190307.231033 submit/tizen/20190305.095610
Tomasz Swierczek [Tue, 5 Mar 2019 08:18:04 +0000 (09:18 +0100)]
Release 1.5.0

* Replace time(NULL) with monotonic clock usage
* Enhance logs in case of writing errors

This release changes numbering to differentiate older branches of code.

tizen branch will continue to use 1.5.X numbering while tizen_5.0 version
will contininue to use 1.4.X numbering (for bugfixes/maintenance).

Change-Id: I752e69c738e565de27c5097381cbb11b2ac6ad48

5 years agoReplace time(NULL) with monotonic clock usage 64/200864/4
Tomasz Swierczek [Tue, 5 Mar 2019 07:14:11 +0000 (08:14 +0100)]
Replace time(NULL) with monotonic clock usage

Calculating timeout for socket connections should
use monotonic clock.

Change-Id: Ie791173cf2663fdf0b94381f391bd5504b3e5e06

5 years agoEnhance logs in case of writing errors & socket problems 58/200858/3
Tomasz Swierczek [Tue, 5 Mar 2019 06:26:04 +0000 (07:26 +0100)]
Enhance logs in case of writing errors & socket problems

In rare case security-manager is closing connections to clients
and after that, it tries to write responses to already closed connections.

With these enhanced logs it would be possible to match if the closed connections
(already appearing in logs) are for same socket number like ignored packets.

Change-Id: Ia105c8731d64d83d8d83182e12ae8adee1b961f0

5 years agoRelease 1.4.14 78/199578/1 accepted/tizen/unified/20190214.060632 submit/tizen/20190213.072219
Tomasz Swierczek [Wed, 13 Feb 2019 06:15:11 +0000 (07:15 +0100)]
Release 1.4.14

* Force logging server-side write() and close() operations
* Add logging response buffer size in debug mode

Change-Id: I8ccbbe45a48e14c7ee43781a7a5c71242fa85c09

5 years agoForce logging server-side write() and close() operations 17/199517/4
Tomasz Swierczek [Tue, 12 Feb 2019 09:24:34 +0000 (10:24 +0100)]
Force logging server-side write() and close() operations

In some cases on TV, client gets 0 from recv while it should receive
an int with status from server. At the same time, there are no error
logs from server side and no issues with systemd service perceived.

This patch is a temporary solution to force logging relevant actions
on server side, to check whether server actually properly processes data.

Logs were added as ErrorLog to make sure these are visible during robustness
tests of TV (where platform code is synced automatically).

This patch WILL BE REVERTED after 31.03

Change-Id: I9284c42b87e49d333261a4dde7aedeae5261343c

5 years agoAdd logging response buffer size in debug mode 16/199516/3
Tomasz Swierczek [Tue, 12 Feb 2019 09:12:01 +0000 (10:12 +0100)]
Add logging response buffer size in debug mode

Change-Id: I551b93aadc5b09b252bb0a0c2a9433c3f57f6491

5 years agoRelease 1.4.13 80/197480/1 accepted/tizen/unified/20190114.060147 submit/tizen/20190111.113023 submit/tizen_5.0/20190114.002221
Dariusz Michaluk [Fri, 11 Jan 2019 10:37:38 +0000 (11:37 +0100)]
Release 1.4.13

* Apply db fallback is present and the db is an empty file
* Loader: add pragma legacy_alter_table for compatibility with sqlite 3.25.2+
* Add missing spaces in log messages

Change-Id: I236b26abb46ad0e8302127e6cb95f7b086220c8d

5 years agoApply db fallback is present and the db is an empty file 76/197476/1
Konrad Lipinski [Wed, 9 Jan 2019 12:33:23 +0000 (13:33 +0100)]
Apply db fallback is present and the db is an empty file

Change-Id: Idfa81003639c5452ae85e79257aa5425547d42ea

5 years agoLoader: add pragma legacy_alter_table for compatibility with sqlite 3.25.2+ 75/197475/1
Konrad Lipinski [Thu, 10 Jan 2019 16:46:20 +0000 (17:46 +0100)]
Loader: add pragma legacy_alter_table for compatibility with sqlite 3.25.2+

Change-Id: Iad4595cb9a12b3ebb23beca092b3057502ef822c

5 years agoAdd missing spaces in log messages 71/196971/1
Pawel Kowalski [Tue, 8 Jan 2019 08:31:06 +0000 (09:31 +0100)]
Add missing spaces in log messages

Change-Id: I6b99ba86b6d2511067a4ac00a082c6584a952d04

5 years agoRelease: 1.4.12 49/195849/1 accepted/tizen/unified/20181220.061549 submit/tizen/20181219.022100 submit/tizen/20181219.065218
Yunjin Lee [Wed, 19 Dec 2018 01:43:16 +0000 (10:43 +0900)]
Release: 1.4.12

* Add core privileges
* Set nullptr to reused data pointer
* Fix issues raised by static analysis
* Change local permissible file location to use UID rather than username

Change-Id: If59a47236554892817a389b3433548a8a59db782
Signed-off-by: Yunjin Lee <yunjin-.lee@samsung.com>
5 years agoAdd core privileges 93/195793/1
Yunjin Lee [Tue, 18 Dec 2018 05:47:17 +0000 (14:47 +0900)]
Add core privileges

- autofillmanager: The application with this privilege can manage
installed autofill services. It can set which autofill service to use
and get the currently configured autofill service.

- internal/buxton/systemsettings: Internal privilege to fix
Web setting privilege's level mismatched mapping to the core
systemsettings.admin privilege. The application with this privilege
can read and write buxton keys for homescreen/lockscreen bg image,
incoming call ringtone, and email notification alert tone.

- filesystem,read, filesystem.write: Web filesystem.read and
filesystem.write are public level privilege and native
systemsettings.admin is platform level privilege. They were mapped
because of the 2.X smack rules but checked that Web
filesystem.read/write privileged device APIs are not wrappers of native
systemsetting.admin privileged APIs. Hence add core privilege for
filesystem.read and write separately and remove mapping to the
systemsettings.admin.

Change-Id: I73047f251c280d554ab13b3449eaa768a7ef7a86
Signed-off-by: Yunjin Lee <yunjin-.lee@samsung.com>
5 years agoSet nullptr to reused data pointer 84/195184/1
Zofia Grzelewska [Tue, 11 Dec 2018 10:11:21 +0000 (11:11 +0100)]
Set nullptr to reused data pointer

Data pointer is reused in a loop and should be set to nullptr
after freeing

Change-Id: If4ab9dd89db73f0dc110279e40bd5608a0eee9d0

5 years agoFix issues raised by static analysis 11/193811/1
Konrad Lipinski [Mon, 26 Nov 2018 13:43:37 +0000 (14:43 +0100)]
Fix issues raised by static analysis

Change-Id: I8d8877f933335bf03511264576e15e75896e7411

5 years agoChange local permissible file location to use UID rather than username 40/193140/6
Tomasz Swierczek [Thu, 15 Nov 2018 06:22:26 +0000 (07:22 +0100)]
Change local permissible file location to use UID rather than username

This is a protection against possible malicious user names.

Change-Id: I4a254fc4f9976fd9bc85d9d4488ba0b49a039da7

5 years agoRelease 1.4.11 28/193628/1 accepted/tizen/5.0/unified/20181205.065328 accepted/tizen/unified/20181123.165012 submit/tizen/20181122.101858 submit/tizen_5.0/20181122.101912 submit/tizen_5.0/20181205.011542
Dariusz Michaluk [Thu, 22 Nov 2018 09:54:32 +0000 (10:54 +0100)]
Release 1.4.11

* Protect security_manager_app_has_privilege with privilege check
* Check some poll() and mount() errors
* Fix documentation headers with required privilege descriptions
* Fix function name spelling error
* Change config.cpp variables to #define

Change-Id: I671eb10c1958b076a8bda3e1bae00c3db8c1539f

5 years agoProtect security_manager_app_has_privilege with privilege check 52/193152/2
Tomasz Swierczek [Thu, 15 Nov 2018 08:59:13 +0000 (09:59 +0100)]
Protect security_manager_app_has_privilege with privilege check

This API serves similar data like fetching policy but wasn't protected
with privilege check. This change introduces the same entry checks.

Change-Id: I3fb2be619d05ebc770fd5c3b994baa13ff07c2a0

5 years agoCheck some poll() and mount() errors 78/193178/2
Konrad Lipinski [Thu, 15 Nov 2018 14:26:40 +0000 (15:26 +0100)]
Check some poll() and mount() errors

Change-Id: I62a7769a70dd35f5cfb8ba781216318105844e3f

5 years agoFix documentation headers with required privilege descriptions 53/193153/2
Tomasz Swierczek [Thu, 15 Nov 2018 09:22:19 +0000 (10:22 +0100)]
Fix documentation headers with required privilege descriptions

Change-Id: I51a92ec289cdd82cbb8ca5caeaad7ef8bd29f50f

6 years agoFix function name spelling error 02/193102/1
Tomasz Swierczek [Wed, 14 Nov 2018 13:20:54 +0000 (14:20 +0100)]
Fix function name spelling error

Change-Id: I66849856b28519b299cd2cc05e55fb3111ce67de

6 years agoChange config.cpp variables to #define 54/193054/1
Tomasz Swierczek [Wed, 14 Nov 2018 05:58:28 +0000 (06:58 +0100)]
Change config.cpp variables to #define

security-manager may be used in processes with many threads.
Destruction of global variables may be in race condition with
child thread's operation & usage of these variables.

While such problem should be fixed in proper threads management,
there may be problems with open-source components that we may
not easily modify (and security-manager provides nss plugin
that may be used in unexpected places).

Change-Id: I057abc0bd2ed8a82d74f3777f6b95d386bc9b9f4

6 years agoRelease 1.4.10 accepted/tizen/5.0/unified/20181108.172404 accepted/tizen/unified/20181107.081818 submit/tizen/20181102.061359 submit/tizen_5.0/20181102.061620
Tomasz Swierczek [Fri, 2 Nov 2018 05:53:45 +0000 (06:53 +0100)]
Release 1.4.10

* Replace runtime production/test db choice with compile-time policy
* Replace smack rule storage with straight-from-db rule loader
* Optimize package installation
* Prevent smack rules leaking during multi-app hybrid pkg uninstall
* Enable additional sqlite pragmas for robustness

Change-Id: Ic7132eef89713d3fb3f41053b156dacf73b28c2f

6 years agoReplace runtime production/test db choice with compile-time policy 76/191276/1
Konrad Lipinski [Mon, 15 Oct 2018 07:31:41 +0000 (09:31 +0200)]
Replace runtime production/test db choice with compile-time policy

Change-Id: Ia13c7ec92f0ffdf4c2341b395a31b8097b4eeddd

6 years agoReplace smack rule storage with straight-from-db rule loader 14/189014/38
Konrad Lipinski [Fri, 14 Sep 2018 12:14:17 +0000 (14:14 +0200)]
Replace smack rule storage with straight-from-db rule loader

Details:
* remove %{TZ_SYS_VAR}/security-manager/rules{,-merged} directories
* add security-manager-rules-loader that
** performs database migration/recovery
** writes smack rules from a coherent database directly to load2
* add generate-rule-code generator that translates rule templates
  (*.smack files) into c++ code for use in the loader
* remove security-manager-init-db binary and replace its invocation with
  sh$ security-manager-rules-loader no-load
* replace dd invocation with security-manager-rules-loader in the rule
  loader service
* add explicit dependency to ensure the loader runs before the manager
* refactor manager code
** remove the majority of database migration/recovery code on grounds of
   loader having run beforehand
** replace defensive remnants of said code with an emergency invocation
   sh$ security-manager-rules-loader fallback-only
   to apply fallback on database schmea errors
** remove rule file maintenance (not needed anymore)

TODO:
* *.smack template files are still used by the manager at runtime,
  removing them is optional and would require a substantial refactor
  best placed in a separate commit

Pros:
* optimize flash usage (rule files were prone to quadratic explosion)
* solve database-rulefiles coherence problem
* make the rule loader performance more scalable and typically better
* simplify and speed up the manager a bit by dropping rule file code

Change-Id: I7d79d5ec7e66c9dfe6563dbb3f76bf6ab6669589

6 years agoOptimize package installation 62/190662/1
Konrad Lipinski [Thu, 4 Oct 2018 11:56:14 +0000 (13:56 +0200)]
Optimize package installation

appInstallSmackRules no longer updates the same rules repeatedly for
non-hybrid packages with multiple applications (every application has
the same process label so it's enough to do just one).

Change-Id: I4ba581a9ad5c297f87d591c647a6c56780d4978a

6 years agoPrevent smack rules leaking during multi-app hybrid pkg uninstall 25/190525/3
Konrad Lipinski [Wed, 3 Oct 2018 09:12:31 +0000 (11:12 +0200)]
Prevent smack rules leaking during multi-app hybrid pkg uninstall

Package hybridity would be detected after database modifications and
change from 1 to 0 for the last application as a result, leading to
wrong process labels being considered (User::Pkg::$pkgName as opposed
to User::Pkg::$pkgName::App::$appName).

Hybridity is now checked ahead of time to prevent the issue.

Change-Id: Ibe08d443d5fe29d36dabd6df023123da82286d21

6 years agoEnable additional sqlite pragmas for robustness 38/189238/2
Konrad Lipinski [Fri, 14 Sep 2018 12:14:17 +0000 (14:14 +0200)]
Enable additional sqlite pragmas for robustness

Change-Id: Ideaa585912143665ba9e288506af9d41679b029b

6 years agoRelease 1.4.9 accepted/tizen/5.0/unified/20181102.021129 accepted/tizen/unified/20180928.080621 submit/tizen/20180927.110544 submit/tizen_5.0/20181101.000004
Tomasz Swierczek [Thu, 27 Sep 2018 11:02:05 +0000 (13:02 +0200)]
Release 1.4.9

* Add privilege for checking app permission

Change-Id: I4ae3a5301442f05de06554de3673d25e03f670d5

6 years agoAdd privilege for checking app permission 49/189949/2
Pawel Kowalski [Mon, 24 Sep 2018 12:27:50 +0000 (14:27 +0200)]
Add privilege for checking app permission

New privilege http://tizen.org/privilege/permission.check was added
to enable the requesting app to check the permission of other app.

Change-Id: Ia0123e4716496852609371c228a41a477e94959e

6 years agoRelease 1.4.8 accepted/tizen/unified/20180920.155219 submit/tizen/20180920.051012
Tomasz Swierczek [Thu, 20 Sep 2018 05:07:19 +0000 (07:07 +0200)]
Release 1.4.8

* Fix security-manager/libsecurity-manager-client cyclic dependency

Change-Id: I5b3b2bd33e7e1b08e4323001fbb1837effaa9666

6 years agoFix security-manager/libsecurity-manager-client cyclic dependency 21/189421/2
Dariusz Michaluk [Mon, 17 Sep 2018 12:16:33 +0000 (14:16 +0200)]
Fix security-manager/libsecurity-manager-client cyclic dependency

Change-Id: Ic4c66e520964b54a1f8f6cc273517405d29b6b6a

6 years agoRelease 1.4.7 submit/tizen/20180918.015947
Tomasz Swierczek [Tue, 18 Sep 2018 12:03:10 +0000 (14:03 +0200)]
Release 1.4.7

* Fix build break with 1.65.1 boost version

Change-Id: If2738dfc0ab73111520655c6a6cf75e3aaafcd41

6 years agoFix build break with 1.65.1 boost version 54/189554/1
Lukasz Wojciechowski [Tue, 18 Sep 2018 11:50:48 +0000 (13:50 +0200)]
Fix build break with 1.65.1 boost version

This is a quick syntax fix. In other places of security-manager tests
a colon is used after BOOST_GLOBAL_FIXTURE macro usage, see:
tests/security-manager-tests.cpp:53:BOOST_GLOBAL_FIXTURE(TestConfig);
tests/security-manager-tests.cpp:54:BOOST_GLOBAL_FIXTURE(LogSetup);

The macro should be replaced anyway as it is deprecated according
to the boost documentation:
https://www.boost.org/doc/libs/1_65_1/libs/test/doc/html/boost_test/utf_reference/test_org_reference/test_org_boost_global_fixture.html

Change-Id: Ib0ee486ae617b83b6f2e66a1b9b0d158b7cbfbec
Signed-off-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
6 years agoRelease 1.4.6 27/189327/1 accepted/tizen/unified/20180918.062826 submit/tizen/20180917.052721
Yunjin Lee [Mon, 17 Sep 2018 05:05:22 +0000 (14:05 +0900)]
Release 1.4.6

* Add core privilege: updatecontrol.admin and permission.check

Change-Id: Ic5cdbb475338ca26a37e3cc9b60bd6944563dba7
Signed-off-by: Yunjin Lee <yunjin-.lee@samsung.com>
6 years agoAdd core privilege: updatecontrol.admin and permission.check 17/189317/1
Yunjin Lee [Mon, 17 Sep 2018 04:46:03 +0000 (13:46 +0900)]
Add core privilege: updatecontrol.admin and permission.check

- updatecontrol.admin allows app to control system software update
procedure

- permission.check allows app to get other apps' permission statuses

Change-Id: I122c9734f9e5bc8b17387724cc05146193f3fd8c
Signed-off-by: Yunjin Lee <yunjin-.lee@samsung.com>
6 years agoRelease 1.4.5 26/189126/1 accepted/tizen/unified/20180914.073215 submit/tizen/20180913.140552
Dariusz Michaluk [Thu, 13 Sep 2018 13:19:48 +0000 (15:19 +0200)]
Release 1.4.5

* Move standard users group management from GUM to security-manager
* Lazily initialize variables that need tz-platform-config
* Attempt database fallback recovery on some schema errors
* Change naming of recovery-management file & functions
* Optimize application uninstallation
* Simplify array size calculation
* Prefer std::vector::emplace_back to push_back in db code

Change-Id: I51d8c32ae4ff0ad40408440526c02c7575350d0f

6 years agoMove standard users group management from GUM to security-manager 49/186449/4
Karol Lewandowski [Wed, 12 Sep 2018 14:33:53 +0000 (16:33 +0200)]
Move standard users group management from GUM to security-manager

Till now users created with "gum" tools were added
to predefined set of supplementary groups - audio,
display, video.  This gave the users needed permissions
to access to various device nodes.

Unfortunately, this model does not work with multiple
"passwd/group" databases - /etc/{passwd,group} on read-only
storage, /opt/etc/{passwd,group} on read-writable storage.
This is because to assign user 'kitty' to the some system
group - defined in /etc/group, this file would need to be
modified, i.e.

  video:x:44:media,system,multimedia_fw,owner,kitty

As noted - this can not be done because /opt/group is
supposed to be on read-only storage.

To address this issue security manager is used.  It does
already provide NSS module which can assign logged in users
to predefined groups.  The groups membership is based on
privileges assigned to given user type.

This commit:
 - introduces three new privileges
 - introduces mapping from new privileges to Unix groups
 - assigns the new privileges to 'admin', 'normal', 'security',
   'system' & 'guest' users
 - adds the new privileges to global & local manifests

Change-Id: I465acc69cfa92bd4162f5aa603696bdfa7ace64e

6 years agoLazily initialize variables that need tz-platform-config 36/187936/5
Krzysztof Jackiewicz [Wed, 29 Aug 2018 13:12:11 +0000 (15:12 +0200)]
Lazily initialize variables that need tz-platform-config

Recent change in tz-platform-config made it use libc API for accessing
passwd/groups databases. As a result, each call to tz-platform-config will make
NSS load security-manager's NSS plugin with all dependent libraries initializing
their global variables.

The common library which is linked with nss plugin initializes two global
variables that use tz-platform-config which will lead to recursive call
prohibited by NSS.

This commit makes these variables lazily initialized to avoid the call to
tz-platform-config in security-manager's nss plugin initialization.

Change-Id: Ie290051f3d3d11c1b5f980d2cba683350a639042

6 years agoAttempt database fallback recovery on some schema errors 47/188047/3
Konrad Lipinski [Thu, 30 Aug 2018 14:04:38 +0000 (16:04 +0200)]
Attempt database fallback recovery on some schema errors

Done per HQ request for extra robustness in the face of unforeseen
database corruption.

Schema error detection amounts to preparing sqlite query templates. It
takes place at the end of database connection bringup (once the database
is verified to be up to date and passes integrity checks) by means of
calling sqlite3_prepare_v2 for every statement template ever to be used
at runtime. Sqlite statement compilation may fail due to lack of schema
compatibility.  If such a failure occurs, fallback recovery is attempted
unless already tried.

Change-Id: I6ef8a262f8db11552f3e92ed3a601227558c3899

6 years agoChange naming of recovery-management file & functions 73/187773/4
Tomasz Swierczek [Tue, 28 Aug 2018 08:35:19 +0000 (10:35 +0200)]
Change naming of recovery-management file & functions

The flag file is a sign for other system components to
feed DB with user-installed-apps, so they'd probably want to
know that DB 'was recovered' to initial state, rather than
know that 'DB used to be broken' (if the DB was broken,
and recovery to initial state is not successful, system
will not boot properly anyway).

Change-Id: Icc3b71b56c8299ba37a3acf3b8f20667af352e15

6 years agoOptimize application uninstallation 89/187489/3
Konrad Lipinski [Thu, 23 Aug 2018 14:03:58 +0000 (16:03 +0200)]
Optimize application uninstallation

Many operations were needlessly performed. Mitigated some of those
deficiencies by constraining lifetimes of some automatic variables and
hoisting redundant operations out of the loop.

Change-Id: I19e37f1cb73ec57ecf525b7bc125d0e2e90cc573

6 years agoSimplify array size calculation 55/186255/3
Krzysztof Jackiewicz [Wed, 8 Aug 2018 09:27:10 +0000 (11:27 +0200)]
Simplify array size calculation

Change-Id: I8d5af79702a1b4b2e61813b99a246fbbac559320

6 years agoPrefer std::vector::emplace_back to push_back in db code 93/187493/3
Konrad Lipinski [Thu, 23 Aug 2018 15:08:06 +0000 (17:08 +0200)]
Prefer std::vector::emplace_back to push_back in db code

Rationale: promote efficient idioms.

Change-Id: Idc7f48c9b8a4e32a3a21de0fc234b705d51e69ec

6 years agoRelease 1.4.4 82/187582/2 accepted/tizen/unified/20180827.071635 submit/tizen/20180824.134752
Tomasz Swierczek [Fri, 24 Aug 2018 09:47:51 +0000 (11:47 +0200)]
Release 1.4.4

* Initialize database and restart service in policy-reload
* Give internet privilege to kernel thread(@)
* Add error logs when translating group names to gids
* Drop unused destroyAt()
* Fix: Remove all SharedRO rules after pkg uninstallation.
* Fix: launch security-manager-cleanup after /opt/usr is mounted.
* Remove fileExists() duplicates
* Add Apache 2.0 license header
* Change way of displaying performance test results
* Rework security-manager-migration script as a policy update script
* Remove unused source code

Change-Id: I8a25e757ad5f0c7d4f4596f6b1743049ac8252fb

6 years agoInitialize database and restart service in policy-reload 72/187472/10
Konrad Lipinski [Thu, 23 Aug 2018 11:57:03 +0000 (13:57 +0200)]
Initialize database and restart service in policy-reload

Added the security-manager-cmd --init-db option that replicates manager
startup database bringup semantics.

Amended security-manager-policy-reload.in to:
* stop the service before inserting into the database to avoid
  concurrent modification
* call security-manager-cmd --init-db to make sure the database exists
  and is coherent prior to modifying it
* perform the database transaction
* start the service so that it reads the modified database

Rationale: prior to the patch, the manager would work on stale data as
the service was already running during policy-reload invocation.

While at it, homogenized systemctl {start,stop} invocations.

Said invocations are now of the form:
systemctl {start,stop} security-manager.service security-manager.socket

Rationale:
* strive for code uniformity
* leverage systemd's automatic dependency resolution
* speed up a bit

Change-Id: I21b254345abaa617b6a389dfd060fb4a4799a148

6 years agoGive internet privilege to kernel thread(@) 07/185107/2
jin-gyu.kim [Wed, 11 Jul 2018 05:32:11 +0000 (14:32 +0900)]
Give internet privilege to kernel thread(@)

In some cases, sending DNS packet is blocked by Nether.
This is due to packet has "@" label, which seems to be originated from kernel.
All packets marked as "@" need to be passed, so give the default cynara rule.

Change-Id: I4a2ba553738c8be783401ca3e71bf69b942f5496

6 years agoAdd error logs when translating group names to gids 54/187454/2
Tomasz Swierczek [Thu, 23 Aug 2018 08:59:13 +0000 (10:59 +0200)]
Add error logs when translating group names to gids

Daemon or client failure is probably the best way to fail-early
in case of bad system config; however, system logs should have clear information
on what has failed in such case.

Change-Id: Ia119bac5795b5a38e4004b7d66c8a64f3a45ac69

6 years agoDrop unused destroyAt() 59/187159/2
Konrad Lipinski [Mon, 20 Aug 2018 09:31:29 +0000 (11:31 +0200)]
Drop unused destroyAt()

Change-Id: Ib04ce2151ab1625dab729ea098f7ccba00b3561e

6 years agoFix: Remove all SharedRO rules after pkg uninstallation. 36/184636/9
Dariusz Michaluk [Tue, 17 Jul 2018 16:34:16 +0000 (18:34 +0200)]
Fix: Remove all SharedRO rules after pkg uninstallation.

Change-Id: Icf7d14507170bc98f61a7aaa3f5f37437b769bb9

6 years agoFix: launch security-manager-cleanup after /opt/usr is mounted. 40/183240/11
Dariusz Michaluk [Tue, 3 Jul 2018 14:06:10 +0000 (16:06 +0200)]
Fix: launch security-manager-cleanup after /opt/usr is mounted.

Change-Id: I1f6f4b2a9b9712ee5ed1a1a539a3059249a90b04

6 years agoRemove fileExists() duplicates 56/186956/1
Dariusz Michaluk [Thu, 16 Aug 2018 09:49:30 +0000 (11:49 +0200)]
Remove fileExists() duplicates

Change-Id: I1ec14dd6d1a60bc481dbe04ec21e70be70c8715e

6 years agoAdd Apache 2.0 license header 94/186894/1
Pawel Kowalski [Thu, 16 Aug 2018 09:41:20 +0000 (11:41 +0200)]
Add Apache 2.0 license header

Change-Id: I43fefb11a6998097c778d76e6d08cab211206d20

6 years agoChange way of displaying performance test results 90/170390/7
Zofia Grzelewska [Mon, 19 Feb 2018 17:51:47 +0000 (18:51 +0100)]
Change way of displaying performance test results

Performance tests didn't show enough info about test parameters.
Ratios differ greatly between test cases, it is nice to have
more infomation, as to why it might be this way.
Added displaying of initial db size and for how many apps
app defined privileges were installed.
Also changed tests names to better describe test case.

Change-Id: Icd1816ec56fd70d15d717231c0b70dc25964741e

6 years agoRework security-manager-migration script as a policy update script 04/158404/5
Rafal Krypa [Mon, 30 Oct 2017 14:39:36 +0000 (15:39 +0100)]
Rework security-manager-migration script as a policy update script

This original framework was first policy migration script that appeared
in security-manager. It should be adopted by the policy update framework,
that was introduced later, but it was overlooked.
In order to merge these update infrastructures, migration directory is
removed and the original migration script is renamed and adapted as a
version 1 policy update, which was previously a no-op.

Change-Id: I96c84103d9eda0746bd8d919bc6dd42c3a50a232
Signed-off-by: Rafal Krypa <r.krypa@samsung.com>
6 years agoRemove unused source code 38/186138/2
Dariusz Michaluk [Tue, 7 Aug 2018 11:27:58 +0000 (13:27 +0200)]
Remove unused source code

Change-Id: I40230e07b459d73907986ba916e1e15628e5d9cb

6 years agoRelease 1.4.3 accepted/tizen/unified/20180810.062838 submit/tizen/20180808.100258
Tomasz Swierczek [Tue, 7 Aug 2018 06:43:56 +0000 (08:43 +0200)]
Release 1.4.3

* Add removal of DB broken flag before atempt to setup DB
* Add database snapshotting and recovery
* Pull db migration into manager binary at startup
* Sanitize privilege_db query storage
* Fix memleak in PrivilegeDb()
* Add /opt/usr/media to privilege-mount.list again
* Retrieve package manager privilege from User::Shell client
* Make spec compliant with gbs --incremental
* Add TZ_SYS_MEDIASHARED to privilege-mount.list
* Change log message in realPath
* Make server keep its original log tag
* Fix hybrid pkg uninstallation

Change-Id: I9b410a6c9ceed3d63a13265aad7d33e858e37c8c

6 years agoAdd removal of DB broken flag before atempt to setup DB
Tomasz Swierczek [Tue, 7 Aug 2018 05:26:55 +0000 (07:26 +0200)]
Add removal of DB broken flag before atempt to setup DB

This way, we ensure that on next booting there will be no information
on previous problems (the flag exists to tell other system components
that user-installed applications require re-registration in security-manager).

Change-Id: I5c7a9962adeb66125664f9a6c293355136456ded

6 years agoAdd database snapshotting and recovery
Konrad Lipinski [Fri, 20 Jul 2018 13:29:00 +0000 (15:29 +0200)]
Add database snapshotting and recovery

A snapshot of a working database can be established by running
  security-manager-cmd --backup
This effectively copies "$TZ_SYS_DB/.security-manager.db" over
"$TZ_SYS_RO_SHARE/security-manager/.security-manager.db" (journal is not
being copied).

NOTE: backup does not check for concurrent access of the db file so the
user has to make sure no concurrent modification takes place in the
interim.

The manager performs an integrity check of the database at every startup
(see below). If the check fails, it truncates the database journal and
overwrites the database file with the latest snapshot, then reattempts
connection, migration and redoes the integrity check on the resulting
database.

As a first shot, integrity check uses the most aggressive possible form
achievable by sqlite pragmas by
* checking if the file exists (to prevent sqlite autovivifying it)
* checking 'pragma intergrity_check'
* checking 'pragma foreign_key_check'

TODO: for product acceptance, actual latency introduced by the integrity
check should be measured. If too high, the check can be made faster by
* dropping foreign_key_check
* replacing integrity_check with quick_check

To help make the decision, lax measurement were taken using
  time sqlite3 >/dev/null /opt/dbspace/.security-manager.db 'pragma..'
time[ms] foreign_key_check integrity_check quick_check
TM1                     17              20          18
emulator                 5               2           2

Change-Id: I01a4ed0879b10bdcadde78ab086776420850e13c

6 years agoPull db migration into manager binary at startup
Konrad Lipinski [Mon, 16 Jul 2018 09:28:14 +0000 (11:28 +0200)]
Pull db migration into manager binary at startup

Done at VD's request to make concurrent db access less likely. Update
scripts and the schema are no longer present at runtime. Migration is
performed in privilege_db.h instead, based on src/gen/db.h generated at
build time from db/{db.sql,updates/*}.

Change-Id: I35e09390b45b4b82a892f92f356eba6f55287268

6 years agoSanitize privilege_db query storage
Konrad Lipinski [Thu, 12 Jul 2018 15:28:29 +0000 (17:28 +0200)]
Sanitize privilege_db query storage

* replace PrivilegeDb::Queries map with a static array
* replace PrivilegeDb::m_commands vector with a fixed size array
* make module require C++ 14

Rationale:
* safety
* efficiency
* memory footprint

Change-Id: If69ab4525c293ae836c1d35af19b8cebf7bbff57

6 years agoFix memleak in PrivilegeDb() 16/184216/10
Konrad Lipinski [Fri, 13 Jul 2018 11:21:59 +0000 (13:21 +0200)]
Fix memleak in PrivilegeDb()

PrivilegeDb::mSqlConnection would leak if an exception was thrown during
PrivilegeDb().

Solved by:
* making PrivilegeDb::mSqlConnection a member
* making SqlConnection() noexcept
* making SqlConnection::Connect() public

Devirtualized and simplified some parts while at it.

Change-Id: I48947fd63b6ea4a72fcd86491417f83a303ec238

6 years agoRemove dependency on libslp-db-util 31/168731/4
Rafal Krypa [Mon, 22 Jan 2018 11:54:14 +0000 (12:54 +0100)]
Remove dependency on libslp-db-util

DPL class SqlConnection had some small dependency on db-util, but this
code path was never used in security-manager.
Remove dependency to reduce memory requirements.

Change-Id: I5551f71a7f665886aa6717bb3b39f0ce8e30ffb5
Signed-off-by: Rafal Krypa <r.krypa@samsung.com>
6 years agoCleanup: remove unused and duplicated macros 95/89195/3
Radoslaw Bartosiak [Thu, 22 Sep 2016 10:23:48 +0000 (12:23 +0200)]
Cleanup: remove unused and duplicated macros

Change-Id: I2ded9109ae8b68c8879f649f0abf86eb4c0062d8
Signed-off-by: Radoslaw Bartosiak <r.bartosiak@samsung.com>
6 years agoAdd /opt/usr/media to privilege-mount.list again 33/185633/4
jin-gyu.kim [Wed, 1 Aug 2018 07:57:05 +0000 (16:57 +0900)]
Add /opt/usr/media to privilege-mount.list again

"/opt/usr/media" was removed in commit 23b4001.
It was wrong, because app's mount namespace is set as SLAVE after unshare().
In case of SLAVE, "/opt/usr/media" is not changed by dummy mount to TZ_USER_CONTENT.
Therefore, it should be added in the list again.

Change-Id: I504c3c8dcdac8e9b31a61dfc03c66abf09a386bc

6 years agoRetrieve package manager privilege from User::Shell client 93/180293/2
jin-gyu.kim [Thu, 24 May 2018 08:23:07 +0000 (17:23 +0900)]
Retrieve package manager privilege from User::Shell client

When user uses dbus-send in the shell process, these privileges can be allowed.
Therefore, privilege checks for these were meaningless.
pkgcmd tools will have "System" execute label,
so we can remove these privileges from User:Shell client.

Change-Id: I56bb4c3d2ef270fada6ce8725eccb4390e2b718f

6 years agoMake spec compliant with gbs --incremental 51/183551/1
Konrad Lipinski [Fri, 6 Jul 2018 10:39:14 +0000 (12:39 +0200)]
Make spec compliant with gbs --incremental

According to [1], %prep section of the spec file should contain a single
%setup macro, nothing else. According to [2], manifest files are best
copied to %{buildroot}%{_datadir} in the %install section.

Moved manifest copy operations from %prep to %install accordingly.

As a byproduct, got a warning about an installed but unpackaged file:
  security-manager-tests.manifest
Corrected the '%files -n security-manager-tests' accordingly by spelling
out the file name verbatim.

References
[1] https://source.tizen.org/documentation/reference/git-build-system/usage/gbs-build
[2] https://wiki.tizen.org/Security/Application_installation_and_Manifest

Change-Id: I29beaccfc83ae65698833696497c0f8791651ffc

6 years agoAdd TZ_SYS_MEDIASHARED to privilege-mount.list 93/167693/3
jin-gyu.kim [Fri, 19 Jan 2018 07:51:10 +0000 (16:51 +0900)]
Add TZ_SYS_MEDIASHARED to privilege-mount.list

TZ_SYS_MEDIASHARED is also controlled under mediastorage priv.
Therefore, adding TZ_SYS_MEDIASHARED for default list.
By the way, "/opt/usr/media" is not needed here.
It is bount-mounted from "TZ_USER_CONTENT", can cover "/opt/usr/media" also.

Change-Id: I4a9a4688632243998a9d4ab9ace73e6743d67cde

6 years agoChange log message in realPath 18/182618/5
akoszewski [Tue, 26 Jun 2018 12:43:14 +0000 (14:43 +0200)]
Change log message in realPath

Change log message in realPath function from error to warning

Change-Id: I33adac5cc32b3ac36bb521d6825c59a14926575d

6 years agoMake server keep its original log tag 83/170283/4
Krzysztof Jackiewicz [Fri, 16 Feb 2018 15:55:03 +0000 (16:55 +0100)]
Make server keep its original log tag

Server uses Group2Gid to map group names to gids. Group2Gid calls getgrent
which uses nss which loads (but doesn't call) nss_securitymanager plugin which
loads security-manager-client which sets the log tag to SECURITY_MANAGER_CLIENT
upon loading.

Don't set log tag in client library if it has been set before.

Change-Id: I6d5469903f88c3f561c3a0737bcba0b61446b093

6 years agoFix hybrid pkg uninstallation 28/182128/1
Tomasz Swierczek [Wed, 20 Jun 2018 12:31:59 +0000 (14:31 +0200)]
Fix hybrid pkg uninstallation

Removal of last app in pkg removed also pkg information from DB.
This meant that subsequent Cynara policy removal could not calculate
proper Smack label of the app, hence not removing policy & keeping
artifacts in Cynara DB.

Change-Id: Ib647b16f5e0d46e4f31bbaa7b823f04071e827d7

6 years agoRelease 1.4.2 05/182105/1 accepted/tizen/unified/20180621.141343 submit/tizen/20180620.121515
Tomasz Swierczek [Wed, 20 Jun 2018 09:10:47 +0000 (11:10 +0200)]
Release 1.4.2

* Adjust build to boost 1.65.1
* Add detection of bad sizes/lengths of deserialized containers
* Add protection against leaking memory during deserialization

Change-Id: I2d33c46a555e181628f0ba115ee353fa0843685c

6 years agoAdjust build to boost 1.65.1 31/181931/3
Tomasz Swierczek [Tue, 19 Jun 2018 05:02:21 +0000 (07:02 +0200)]
Adjust build to boost 1.65.1

Change-Id: I51af6f76f114b8b997f1e1d1bdc5c452ac236533

6 years agoAdd detection of bad sizes/lengths of deserialized containers 08/181508/2
Tomasz Swierczek [Thu, 14 Jun 2018 09:41:16 +0000 (11:41 +0200)]
Add detection of bad sizes/lengths of deserialized containers

Change-Id: I1b2dcf494f8ee48a39009710bb02a7222c67ee00

6 years agoAdd protection against leaking memory during deserialization 07/181507/2
Tomasz Swierczek [Thu, 14 Jun 2018 08:41:26 +0000 (10:41 +0200)]
Add protection against leaking memory during deserialization

Change-Id: Ie4e2b4fed97e73368554d779f3cb83c2678dcdfc

6 years agoRelease 1.4.1 94/179294/1 accepted/tizen/unified/20180518.060531 submit/tizen/20180517.074158
jin-gyu.kim [Thu, 17 May 2018 04:18:17 +0000 (13:18 +0900)]
Release 1.4.1

* Refactoring/removing unnecessary branches
* Add %build in spec file
* Fix mount namespace setup in case of multiple apps in one pkg

Change-Id: I4a1e7f7d88360c3d523421e697f7c15c560bcc42

6 years agoFix mount namespace setup in case of multiple apps in one pkg 96/179096/2
Dariusz Michaluk [Tue, 15 May 2018 16:00:01 +0000 (18:00 +0200)]
Fix mount namespace setup in case of multiple apps in one pkg

Change-Id: I1da757ba4ab40b47e9935ab1981df272ab8a4e5e

6 years agoAdd %build in spec file 56/177356/1
Tomasz Swierczek [Fri, 27 Apr 2018 08:54:08 +0000 (10:54 +0200)]
Add %build in spec file

Its needed to prepare debug packages in mobile environment.

Change-Id: Ic3f3fec05aa2e8f37c52f91d8398db115d8ca63c

6 years agoRefactoring/removing unnecessary branches 64/177264/2
Tomasz Swierczek [Thu, 26 Apr 2018 12:29:40 +0000 (14:29 +0200)]
Refactoring/removing unnecessary branches

Removal of unnecessary checking of old package hybrid status
& removal of not needed conditional branch in cynara.cpp

Change-Id: Ibceca51adcb94279ab9c3fce3a6521879cfeacd4

6 years agoRelease 1.4.0 67/177067/1 accepted/tizen/unified/20180426.062540 submit/tizen/20180425.085250
Tomasz Swierczek [Wed, 25 Apr 2018 04:37:52 +0000 (06:37 +0200)]
Release 1.4.0

* New API: app_update (allows ie. is_hybrid flag change during app upgrade)

This release changes numbering to differentiate older branches of code.

This branch will continue to use 1.4.X numbering while older versions
will contininue to use 1.3.X numbering (for bugfixes/maintenance).

Change-Id: I27231012b22de42f875f99e3b2ec9174cf97e2e9

6 years agoAllow is_hybrid flag change during app upgrade 47/174147/11
Pawel Kowalski [Wed, 28 Mar 2018 12:01:35 +0000 (14:01 +0200)]
Allow is_hybrid flag change during app upgrade

The patch includes:
- Update of database to v13
- Split appInstall and appUninstall functions into separate
  smaller functions dedicated to updates of subsequent modules:
  Cynara, Privlege DB and Smack (refactoring)
- Add the appUpdate function and the API function
  security_manager_app_update for updates that allow to change the
  hybridity of the package
- Add modifications to allow the change of the app Smack label
  (now in functions calculatePolicicies and updateAppPolicies it is
  possible to give both old and new Smack labels)

Change-Id: I6e22e2750ae7982750acc9212dc14808d8ff6ecd

6 years agoRelease 1.3.3 60/175160/1 accepted/tizen/unified/20180411.065549 submit/tizen/20180410.055541
Yunjin Lee [Thu, 5 Apr 2018 04:25:27 +0000 (13:25 +0900)]
Release 1.3.3

* Add core privilege voicecontrol.manager, softap and softap.admin

Change-Id: I62d6a8afea6245954cec2ccadc6705f7276e5aba
Signed-off-by: Yunjin Lee <yunjin-.lee@samsung.com>
6 years agoAdd core privilege voicecontrol.manager, softap and softap.admin 13/174813/2
Yunjin Lee [Wed, 4 Apr 2018 08:47:47 +0000 (17:47 +0900)]
Add core privilege voicecontrol.manager, softap and softap.admin

Change-Id: I01779a1b0c06d19c243cc54ebfb66595cf1961a9
Signed-off-by: Yunjin Lee <yunjin-.lee@samsung.com>
6 years agoRelease 1.3.2 10/174810/1 accepted/tizen/unified/20180409.100011 submit/tizen/20180402.232840 submit/tizen/20180408.231339
Tomasz Swierczek [Wed, 4 Apr 2018 08:24:51 +0000 (10:24 +0200)]
Release 1.3.2

* Fix build error regarding to Cmake upgrade

Change-Id: I9fae9e6a3407ab92cd7621b9f97260bc2468d7f9

6 years agoFix build error regarding to Cmake upgrade 39/174739/2
Taejin Woo [Fri, 16 Mar 2018 06:00:45 +0000 (15:00 +0900)]
Fix build error regarding to Cmake upgrade

Change-Id: I77f6f7822be072a7d3c44a8a5f7caf82674fdf29

6 years agoRelease 1.3.1 94/171294/2 accepted/tizen/unified/20180302.155607 submit/tizen/20180301.132352
Tomasz Swierczek [Wed, 28 Feb 2018 08:59:52 +0000 (09:59 +0100)]
Release 1.3.1

* Allow application to fetch its own manifest
* Add get_app_manifest_policy API
* Database Performance Test
* license-manager-agent: fix memory leak

Change-Id: Ie7112eebd88f9fd2c9a5908a81084f4ca0aab737

6 years agoAllow application to fetch its own manifest 13/171313/1
Zofia Grzelewska [Wed, 28 Feb 2018 16:10:19 +0000 (17:10 +0100)]
Allow application to fetch its own manifest

security_manager_get_manifest_policy didn't allow application
to fetch its own manifest in case of global application run in
unprivileged user context. This is required for PPM API to work
properly.

Change-Id: Ib5c72f2b3fdea170b1eb51e4d0ed4d7c31f293b9

6 years agoAdd full get_app_manifest_policy API implementation 95/169995/7
Tomasz Swierczek [Mon, 12 Feb 2018 15:41:36 +0000 (16:41 +0100)]
Add full get_app_manifest_policy API implementation

Connected serviceImpl methods to IPC to provide fully functional
get_app_manifest_policy API

Change-Id: I7d94d15771330ca2352d3885698361ba8bc557a1

6 years agoAdd serviceImpl of getAppManifestPolicy function 94/169994/4
Tomasz Swierczek [Mon, 12 Feb 2018 15:13:23 +0000 (16:13 +0100)]
Add serviceImpl of getAppManifestPolicy function

Method to be used as implementation of security_manager_get_app_manifest_policy function

Change-Id: I897187234222d0fb17a70a20983492a91072bca7

6 years agoAPI prototypes for checking app manifest policy 88/169988/4
Tomasz Swierczek [Mon, 12 Feb 2018 11:29:04 +0000 (12:29 +0100)]
API prototypes for checking app manifest policy

API needed for askuser/privacy privilege manager modules
to recognize if privilege was declared by manifest or not

Change-Id: Ica847792db05177d8afa17dde919590b6dde0636

6 years agoDatabase Performance Test 43/143843/27
Ernest Borowski [Fri, 11 Aug 2017 11:10:24 +0000 (13:10 +0200)]
Database Performance Test

Tests are measuring performance loss when Apps count increase
Tests are measuring: Adding app, Removing app, Adding Privileges for app

Change-Id: Ia091c67a9e36f499ada7194d6d751ffe511a981c
Signed-off-by: Ernest Borowski <e.borowski@partner.samsung.com>
6 years agolicense-manager-agent: fix memory leak 01/168601/1
Rafal Krypa [Mon, 29 Jan 2018 13:17:54 +0000 (14:17 +0100)]
license-manager-agent: fix memory leak

Data allocated by cynara_agent_get_request() must be freed with the
free() function.

Change-Id: Ifedeebfd82d06217c833145e298c36c4b3f2cc34

6 years agoRelease 1.3.0 54/167454/3 accepted/tizen/unified/20180119.133741 submit/tizen/20180117.202200
Rafal Krypa [Wed, 17 Jan 2018 18:38:14 +0000 (19:38 +0100)]
Release 1.3.0

* Fix MountNS::isPathBound()
* Fix NSMountLogic in case when user has no running applications
* Identify apps by Smack label instead of appName in NSMountLogic
* During application start, privileged directory enforced by bind mount may be missing
* client: do not add application process to hardcoded groups
* Add core privilege: devicecertificate
* Monitor mount/umount events on the system and update app mount namespaces
* Refactoring: make NSMountLogic class responsible for Channel and MntMonitor
* Add security_manager_cleanup_app() API
* Change license-manager package name
* Add explicit dependency on libnss-security-manager
* Fix API for freeing policy entries
* Refactor security_manager_create_namespace_internal()
* Refactor security_manager_prepare_app()
* Optimize tracking of application mount namespace

Change-Id: I2df2ed1298655a46aa23ebb9d9dbd3a4690886b7
Signed-off-by: Rafal Krypa <r.krypa@samsung.com>
6 years agoOptimize tracking of application mount namespace 50/167450/4
Rafal Krypa [Fri, 12 Jan 2018 12:53:33 +0000 (13:53 +0100)]
Optimize tracking of application mount namespace

Instead of bind-mounting mount namespace descriptor of application during
security_manager_prepare_app, make a symlink to it. It will make it much
faster and avoid triggering internal mount watcher that tries to update
bind mounts. It is assumed that children processes of the main application
process will never live longer than the main app process itself. This is
supposedly guaranteed by the app framework.

Change-Id: I9fcbdd670278c3884ea4a703e934065608c2fed0
Signed-off-by: Rafal Krypa <r.krypa@samsung.com>
6 years agoRestore mediastorage/externalstorage privilege to group mapping 10/167410/5
Dariusz Michaluk [Wed, 17 Jan 2018 11:05:07 +0000 (12:05 +0100)]
Restore mediastorage/externalstorage privilege to group mapping

Change-Id: I04206d26566f37f0b78e6e19c56c1dbb51caacfe

6 years agoRefactor security_manager_prepare_app() 69/166969/5
Dariusz Michaluk [Fri, 12 Jan 2018 11:09:32 +0000 (12:09 +0100)]
Refactor security_manager_prepare_app()

This change reduces the number of IPCs and SQL queries needed to smack label generation.
The goal is to reduce the application start time.

Change-Id: I2871a51b663b300836459b834d968f2d15cd47e0

6 years agoRefactor security_manager_create_namespace_internal() 57/166757/4
Dariusz Michaluk [Thu, 11 Jan 2018 15:39:44 +0000 (16:39 +0100)]
Refactor security_manager_create_namespace_internal()

This change reduces the number of IPCs and SQL queries needed to setup mount namespace.
The goal is to reduce the application start time.

Change-Id: Ib6ee820f097f07add9228346cd9a191abb16a97c

6 years agoMajor Fix : Fix API for freeing policy entries 43/162643/4
Zofia Grzelewska [Mon, 4 Dec 2017 12:51:08 +0000 (13:51 +0100)]
Major Fix : Fix API for freeing policy entries

security_manager_policy_entries_free was supposed
to free table of pointers to policy_entry, but was
implemented improperly. Because function had wrong
signature (taking pointer to structure instead of
pointer of table) and without change, it causes double
free and not using proper function results in memory leak,
this function has to be changed, thus breaking the ABI.

Change-Id: I6d285c04eb1a77f5492c10d6709d0f47ebdd36f1

6 years agoAdd explicit dependency on libnss-security-manager 84/162484/3
Rafal Krypa [Wed, 17 Jan 2018 17:35:42 +0000 (18:35 +0100)]
Add explicit dependency on libnss-security-manager

Make sure that the nss plugin gets installed to properly support
privileges enforced by gids to non-application processes.

Change-Id: I7f95503c71a2fbf18df24df7e07d8d12a4d17a3f
Signed-off-by: Rafal Krypa <r.krypa@samsung.com>