Karol Lewandowski [Wed, 7 May 2025 19:21:30 +0000 (21:21 +0200)]
Release 0.10.1.0
Change-Id: Iecfdfb10eab1b682428aed9beee358b63bce0b9e
Karol Lewandowski [Wed, 7 May 2025 20:51:39 +0000 (22:51 +0200)]
Create space efficient ext4 filesystem without journal
Change-Id: I66b824796ed4ac0fa1a982af1e3b57f3e5c02d2a
Michal Bloch [Wed, 7 May 2025 14:16:02 +0000 (16:16 +0200)]
Increase default libsessiond timeout
Very busy systems running on garbage hardware can sometimes
fail to finish calls within the timeout. The timeout is there
mostly to avoid infinite waiting, so can be as large as we
want to accomodate this as long as it's not infinite/-1.
Change-Id: Id387f627081222edc4a111ac55c4b1a8e67f8576
Karol Lewandowski [Tue, 6 May 2025 17:02:44 +0000 (19:02 +0200)]
service: session restore: Handle non-existing uids properly
/opt/usr/home/ can contain build artifacts like 'abuild' with no
passwd entry, causing sessiond to terminate at user->uid translation.
Fixes:
I/SESSIOND(18740): main_restore.cpp: restore_all_user_sessions(135) > Restoring last session for user abuild
E/SESSIOND(18740): main.cpp: main(46) > Exception Couldn't get Unix uid for `abuild` user - does not exist caught in top scope! Bailing out...
Change-Id: Ida7609da7a122b7f10c8ca05bf0d6b5a25e22018
Karol Lewandowski [Tue, 6 May 2025 16:58:48 +0000 (18:58 +0200)]
mkfs: Pre-create empty image file to workaround obsolete mkfs.ext4
We not only need to create empty file but also add -F (force) flag
for mkfs.ext4 to actually create filesystem.
Needed for mkfs.ext4 v1.43 from 2013.
Change-Id: I69fb57f2b1d6a8c9823d70a81c0f86f56bd33739
Michal Bloch [Wed, 30 Apr 2025 18:37:33 +0000 (20:37 +0200)]
Avoid mkfs interactive mode extra hard
Change-Id: I9b8e12abd0dd1225bc7dc7d32fa31cf7f5588e57
Karol Lewandowski [Thu, 24 Apr 2025 20:34:11 +0000 (22:34 +0200)]
Switch to mkfs.ext4
It looks like mkfs.ext2 is no longer universally available.
While mkfs.ext4 can still create ext2 filesystems,
mount won't necessarily still support mounting those.
Change-Id: I7a404b9a8feca5a281543f6fad1b50c0566cf574
Michal Bloch [Wed, 30 Apr 2025 20:14:15 +0000 (22:14 +0200)]
Add subsession current/list getters to plugin API
With some usage in the example/test plugin.
Change-Id: Ieb1826b69fea90d926b7ed85e8c9cb0a2b9cf101
Michal Bloch [Tue, 29 Apr 2025 11:49:56 +0000 (13:49 +0200)]
sessiond-plugin-internal.h moved from libsyscommon
The internal functions are already provided by sessiond,
in plugin_push.cpp, so this makes sure that the header
is also provided in the same place and avoids creating
a "fake" plugin dependency on libsyscommon.
Change-Id: I54754be8612ca71ac6fb7826a828efdecdc43de2
Chanwoo Choi [Tue, 22 Apr 2025 06:50:34 +0000 (15:50 +0900)]
Fix invocation timing of plugin function after completed add/remove/swich
commit
b614b440a919 (Add basic event listener plugin support) has the
invocation timing issue of plugin funciton because invocating the plugin
function before add/remove/switch completion.
So that Invocate plugin function after add/remove/switch completion.
Change-Id: Ia7677c0e731829cff5a3c422f6b56d7402ba9936
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Karol Lewandowski [Mon, 14 Apr 2025 16:14:33 +0000 (16:14 +0000)]
Merge "Release 0.10.0.3" into tizen
Karol Lewandowski [Mon, 14 Apr 2025 16:14:33 +0000 (16:14 +0000)]
Merge "Advisory locks for restoration" into tizen
Karol Lewandowski [Mon, 14 Apr 2025 16:14:33 +0000 (16:14 +0000)]
Merge "Restore last subsession at sessiond start" into tizen
Karol Lewandowski [Mon, 14 Apr 2025 16:14:33 +0000 (16:14 +0000)]
Merge changes into tizen
Karol Lewandowski [Mon, 14 Apr 2025 16:14:33 +0000 (16:14 +0000)]
Merge changes into tizen
Karol Lewandowski [Mon, 14 Apr 2025 16:14:33 +0000 (16:14 +0000)]
Merge "Add OS::get_uid_from_name" into tizen
Michal Bloch [Mon, 14 Apr 2025 14:58:08 +0000 (16:58 +0200)]
Release 0.10.0.3
Add subsession restoration after reboot.
Change-Id: Id0213b8768b45153283a28d1594d351f69ca63f2
Michal Bloch [Fri, 11 Apr 2025 17:07:33 +0000 (19:07 +0200)]
Advisory locks for restoration
Change-Id: Ic394369fa3ab017503deb329e6dfee0328736f7c
Michal Bloch [Thu, 10 Apr 2025 19:55:32 +0000 (21:55 +0200)]
Restore last subsession at sessiond start
And add a restore-only mode in case work needs to be done
such as for fixed-size backend that needs to be remounted.
Change-Id: Iee7d831889ecac7e1a913e7acb61eb9a34ba82a5
Michal Bloch [Wed, 9 Apr 2025 16:20:58 +0000 (18:20 +0200)]
Extract sysconf buffer allocation
Change-Id: I931eca869f4b6354c25c5faa0b56362e069839d4
Michal Bloch [Wed, 9 Apr 2025 16:21:43 +0000 (18:21 +0200)]
Add OS::get_uid_from_name
Change-Id: Ic6f5d83857689acfdc94ae88a3c158aff3cdbec8
Michal Bloch [Thu, 10 Apr 2025 16:00:10 +0000 (18:00 +0200)]
Save the last subsession on disk
Change-Id: Id25e3ff5ec694aa3071052d4e3130edc9a4c794d
Michal Bloch [Thu, 10 Apr 2025 15:11:59 +0000 (17:11 +0200)]
`get_main_dir_by_user_id` exposed, returns fs::path
Change-Id: Ic6f5d83857689acfdc94ae88a3c158aff3cdb000
Michal Bloch [Tue, 8 Apr 2025 18:11:52 +0000 (20:11 +0200)]
Example plugin conforms to libsyscommon interface change
Change-Id: I5a5e8cb59dd16c3d287b5ed6584a00e8def63e2e
Michal Bloch [Mon, 7 Apr 2025 14:38:39 +0000 (16:38 +0200)]
Release 0.10.0.2
Hotfix printf arg ordering
Change-Id: Idbec99be804cff38b55537836750fc877f7e2ce3
Michal Bloch [Tue, 1 Apr 2025 17:22:17 +0000 (19:22 +0200)]
Release 0.10.0.1
Minor correctness fixes
Change-Id: I25cd31dbd56975e865e1529cb5464493481bd478
Michal Bloch [Tue, 1 Apr 2025 17:21:52 +0000 (19:21 +0200)]
Plugin example: stump actually fits its contents
Change-Id: I8a112284ef1c17a8501b241435a60bf4796f9699
Michal Bloch [Tue, 1 Apr 2025 17:21:05 +0000 (19:21 +0200)]
Improve plugin example commentary
In case it actually gets used as a skeleton/example.
Change-Id: I2861c4fb72d6aaa60fac3f70525faa2816caf09a
Michal Bloch [Tue, 1 Apr 2025 15:34:47 +0000 (17:34 +0200)]
Proper exception handling for add/remove failures
Change-Id: I138578dda11a3f21a17c5114e3eb1c1de4fafd16
Michal Bloch [Tue, 1 Apr 2025 12:09:46 +0000 (14:09 +0200)]
Cleanup failed fixed-size add attempts properly
Change-Id: I624fd935c4f1a795503004befc54dd99a15aa06f
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
Michal Bloch [Wed, 2 Apr 2025 17:36:04 +0000 (19:36 +0200)]
Check subsession existence explicitly for Add/Remove
Instead of relying on the actual function blowing up
and parsing the exception in the outermost scope.
Change-Id: Ibd9b0f587880dc5503924f0debde1ec17157f892
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
Michal Bloch [Tue, 1 Apr 2025 11:57:29 +0000 (13:57 +0200)]
Tweak exception log messages
* remove inline \n because this produce 2 separate dlog entries
* put the specific exception message at the end for readability
Change-Id: I556a0694d691fb324334245613b8b1456ea157cc
Karol Lewandowski [Mon, 31 Mar 2025 16:50:55 +0000 (16:50 +0000)]
Merge changes into tizen
Karol Lewandowski [Mon, 31 Mar 2025 16:50:55 +0000 (16:50 +0000)]
Merge changes from topic "sessiond-2025-03-plugins" into tizen
* changes:
Release 0.10.0.0
Add an example/test plugin
Plugin can now also push events
Ensure sessiond service build as PIE
Add basic event listener plugin support
Unify validity checks
Have a single global instance of `sessiond_context`
Move struct defs out of main.cpp
Extract work away from dbus method handlers
Karol Lewandowski [Mon, 31 Mar 2025 16:50:55 +0000 (16:50 +0000)]
Merge changes into tizen
Karol Lewandowski [Mon, 31 Mar 2025 16:50:55 +0000 (16:50 +0000)]
Merge changes into tizen
Michal Bloch [Mon, 24 Mar 2025 17:42:43 +0000 (18:42 +0100)]
Release 0.10.0.0
Added plugin support
Change-Id: Ib297d98a45c454bdc101ce9ad32bd5e40fc7d6ef
Karol Lewandowski [Tue, 25 Mar 2025 13:40:22 +0000 (14:40 +0100)]
Add an example/test plugin
Co-authored-by: Michal Bloch <m.bloch@samsung.com>
Change-Id: Ifa7c7d2b773d1840449e855d9885d5c951c1b86d
Michal Bloch [Tue, 25 Mar 2025 19:55:29 +0000 (20:55 +0100)]
Plugin can now also push events
Change-Id: I920283dd08647ac8abce95de25315484f1e7ba43
Karol Lewandowski [Fri, 28 Mar 2025 13:12:42 +0000 (14:12 +0100)]
Ensure sessiond service build as PIE
This is needed for plugins to be able to safely call sessiond exported
symbols.
Change-Id: I10eb2b8163d202f10cbdd209bffe412309da1952
Michal Bloch [Wed, 19 Mar 2025 15:54:31 +0000 (16:54 +0100)]
Add basic event listener plugin support
Change-Id: I766a35b341c89d14eeae96f16d31ea65b91ac27e
Michal Bloch [Wed, 26 Mar 2025 18:09:14 +0000 (19:09 +0100)]
Unify validity checks
Change-Id: If3ba71927a7d182bde76b25ac655f44f3cf855bb
Michal Bloch [Wed, 26 Mar 2025 13:55:54 +0000 (14:55 +0100)]
Have a single global instance of `sessiond_context`
This is the de facto state of affairs
and makes the plugin interface cleaner.
Change-Id: I24cb1625945fae2ef4a7dbb5b4e5e232edb6c911
Michal Bloch [Tue, 25 Mar 2025 20:11:10 +0000 (21:11 +0100)]
Move struct defs out of main.cpp
Plugin will want to know the context definition to call work funcs,
so the definitions need to be in a header.
Make some other header functions `inline` to allow multiple inclusion.
Change-Id: Iba0cf4c15f139a47d808ee1fdfaa38e4e64ec4e7
Michal Bloch [Tue, 25 Mar 2025 19:08:41 +0000 (20:08 +0100)]
Extract work away from dbus method handlers
Dbus method handlers are now strictly for dealing with dbus messages.
All the work is performed in a separate function, which will be able
to be called directly from non-dbus sources (such as plugin).
Change-Id: I1d2b1fd74827aa65f1fb48205e52d6892b858c11
Michal Bloch [Tue, 11 Mar 2025 12:53:06 +0000 (13:53 +0100)]
Move fork helpers to OS namespace
Change-Id: I264f830c8c7e92bdcd29c48b0b57da32aa381d65
Karol Lewandowski [Tue, 4 Mar 2025 17:16:14 +0000 (18:16 +0100)]
fixed size backend: Do not unmount subsession image when switching away from session
There is no tangible benefit for unmounting the image.
Change-Id: Ic425cfee68b99fe3eef8f532676f77844229c833
Michal Bloch [Thu, 6 Mar 2025 14:25:13 +0000 (15:25 +0100)]
Subsession meta file rights tweaks
* don't copy SMACK label from the image to the mounted FS root.
This keeps the label the same as the /etc/skel source.
* add some commentary.
Change-Id: Iaabb5e0768a93790829574511e592c39de73db60
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
Michal Bloch [Thu, 6 Mar 2025 14:27:33 +0000 (15:27 +0100)]
Release 0.7.8.3
Fixes, tests, and proper internal C API.
Change-Id: I467641bd86ce628da8302f25676b7e14d9eb7358
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
Michal Bloch [Wed, 5 Mar 2025 18:25:40 +0000 (19:25 +0100)]
Make sure self-switch works on fixed-dir backend.
Change-Id: I93e1f6eeaa9460526da625e0747b6586342ba96b
Michal Bloch [Wed, 5 Mar 2025 18:20:22 +0000 (19:20 +0100)]
Image files start with a dot
Sessions named "foo.img" are valid, only names starting
with a dot are protected for technical reasons.
Change-Id: If0fc31dd124b189d27b71a588eb4ad985699979f
Michal Bloch [Tue, 4 Mar 2025 18:55:04 +0000 (19:55 +0100)]
Add advanced fixed-size backend tests.
Covers more scenarios specific to the backend,
and interaction between the two backends.
Change-Id: I2ae980ffa8497dffc455761d1958c94db8390d5d
Michal Bloch [Tue, 4 Mar 2025 14:27:46 +0000 (15:27 +0100)]
Add basic fixed-size backend tests.
So far just a copy-paste of regular dir backend tests,
doesn't yet handle some fixed-size specific scenarios.
Change-Id: I557d3ebd280547a40feae38da5cbd51c8aeb3bf8
Michal Bloch [Tue, 4 Mar 2025 18:59:31 +0000 (19:59 +0100)]
Fix a typo in test description
Change-Id: Ibfaa4bc253e16524cbde17e99650c6e66ae10667
Michal Bloch [Tue, 4 Mar 2025 14:36:14 +0000 (15:36 +0100)]
Mark existing API tests as using regular-dir backend
Change-Id: I59302775c70d9941e1be592aaaa1306a7c36b7c1
Michal Bloch [Tue, 4 Mar 2025 13:08:27 +0000 (14:08 +0100)]
Add `subsession_add_user_fixed_size` API.
Change-Id: Icbf988469a8ec038e4aa5a6a04ddee34304c24b1
Michal Bloch [Thu, 27 Feb 2025 19:06:44 +0000 (20:06 +0100)]
Accept const references where possible
Change-Id: I4a2ffbd9352fc04ede70ba34bdd7ca3770b7043f
Michal Bloch [Thu, 27 Feb 2025 19:03:39 +0000 (20:03 +0100)]
Use `fs` consistently over `std::filesystem`
Change-Id: Id743bce0383e30cc0d5961f22c12c45ad63f2e80
Michal Bloch [Wed, 26 Feb 2025 18:56:16 +0000 (19:56 +0100)]
Release 0.7.8.2
Add fixed-size image backend.
Change-Id: I4362242a2f9e0d953f711076fde4e0467f39c8e8
Michal Bloch [Thu, 27 Feb 2025 15:14:24 +0000 (16:14 +0100)]
Fix file permissions for fixed-size backend
Change-Id: I429cb35d2ff50c1c22d9187976c310a774ed90c6
Michal Bloch [Thu, 27 Feb 2025 12:20:43 +0000 (13:20 +0100)]
Check for mountpoint before mounting
Change-Id: I335f3d0ae03a473eca929ebf1bd1d34d11c035f7
Michal Bloch [Wed, 26 Feb 2025 18:55:57 +0000 (19:55 +0100)]
Integration test: fewer regular subsessions
Three is enough, it lets you have an active subsession and multiple
inactive subsessions in parallel (not that we even look at them in
a way that this would matter). More than that doesn't really bring
much value and just makes it take more time to run the test.
Change-Id: Ifa2253bb5f637e74452c452500d711d35c0bc8bc
Michal Bloch [Mon, 24 Feb 2025 18:00:16 +0000 (19:00 +0100)]
Add basic integration tests
Change-Id: I18075aa397cd07e8dc5318d208b8e8ea008a5ec5
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
Michal Bloch [Wed, 19 Feb 2025 16:19:34 +0000 (17:19 +0100)]
Add 'AddUserFixedSize' dbus call.
Change-Id: I29aa18dcf5812e9a0376f705c39b5483c642c8f4
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
Michal Bloch [Mon, 24 Feb 2025 12:49:41 +0000 (13:49 +0100)]
Add fixed-size backend.
Change-Id: I398db9e586102c97b44724ae52c112b5f2c50638
Michal Bloch [Wed, 26 Feb 2025 17:34:54 +0000 (18:34 +0100)]
Add some safety to SessionAdd.
Change-Id: I2414dba217d3a8f125e13dd8ac78361b2105328d
Michal Bloch [Fri, 21 Feb 2025 18:42:25 +0000 (19:42 +0100)]
Extract AddSession dir helpers to dir backend.
Change-Id: I0aa9ca022542cb6966911cc45b800110c37b11ff
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
Michal Bloch [Mon, 24 Feb 2025 14:15:38 +0000 (15:15 +0100)]
Add a subsession switch callback to dir backend
Change-Id: I83bd27940fe61c6ac6b3a45be9e784db5b4535eb
Michal Bloch [Wed, 19 Feb 2025 14:52:11 +0000 (15:52 +0100)]
Make dir backends use inheritance instead
This is because multiple backends will be used at runtime.
Change-Id: I33811b427ba10c91f82927c13aefd61fdbb511f2
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
Michal Bloch [Thu, 13 Feb 2025 13:50:42 +0000 (14:50 +0100)]
Coverity fixes
Change-Id: I200d8d09571b35888ee543e8c58a3ec822b685db
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
Michal Bloch [Wed, 12 Feb 2025 11:37:26 +0000 (12:37 +0100)]
Release 0.7.8.1
Don't use bleeding edge technologies like C++20
since some known downstream forks use g++9.2.
Change-Id: I020817bb35307c92d7f1a3d13ca529279b33e986
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
Michal Bloch [Mon, 3 Feb 2025 19:14:53 +0000 (20:14 +0100)]
Release 0.7.8.0
No logic change, just refactoring.
Change-Id: I7d92b8dbdae48dc2b568a39ad79b3e1c9eea7142
Michal Bloch [Mon, 3 Feb 2025 19:07:52 +0000 (20:07 +0100)]
Remove a redundant check.
Change-Id: I86ae8fecafe17627ebcb2e0955e6faccfed8caeb
Michal Bloch [Mon, 3 Feb 2025 18:14:00 +0000 (19:14 +0100)]
More fs::path instead of string parsing
Change-Id: I6d5365f58f5bf588ca209e65644118586c9e37de
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
Michal Bloch [Wed, 22 Jan 2025 12:16:49 +0000 (13:16 +0100)]
Make OS helpers use fs::path instead of strings
Change-Id: I06a5912a98033fbaeaaa01acc3ebf66ed3bffb5f
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
Michal Bloch [Wed, 22 Jan 2025 12:11:19 +0000 (13:11 +0100)]
Initial subsession dir backend abstraction
Just subsession removal for now.
Change-Id: Id811f5811fb842f581952f149e58de9918209196
Michal Bloch [Wed, 15 Jan 2025 15:13:21 +0000 (16:13 +0100)]
Extract wrappers over OS functions to a separate file
This leaves fs_helpers with just business logic.
Change-Id: I6a24e3964b918a71770055a0461bd531300debbb
Michal Bloch [Wed, 22 Jan 2025 11:30:13 +0000 (12:30 +0100)]
Use fs::path in `remove_user_subsession`
Instead of processing raw strings manually.
Change-Id: I188432ac5e0cb24ecac24c8aedff2fb6134b0c96
Michal Bloch [Thu, 30 Jan 2025 16:31:54 +0000 (17:31 +0100)]
Use std::fs for stat and mode
Change-Id: I31fca9acc678734276400311b65a5b2412ccc6ab
Michal Bloch [Tue, 14 Jan 2025 15:23:31 +0000 (16:23 +0100)]
Decouple set_ownership from "dir class" logic
Putting business logic outside it turns set_ownership
into strictly a filesystem helper.
Change-Id: Ibdfdc4cdaed9c183b542846e0320627aab046847
Michal Bloch [Tue, 14 Jan 2025 14:12:46 +0000 (15:12 +0100)]
Extract "get main dir path" into a function
Change-Id: I2d13339ab99d81bbdb146bf7f6e9c2fde5ecf83a
Hwankyu Jhun [Thu, 31 Oct 2024 12:21:56 +0000 (21:21 +0900)]
Modify dbus conf for buxton daemon
To allow buxton user, the dbus policy is modified.
Requires:
- https://review.tizen.org/gerrit/#/c/platform/core/system/buxton2/+/319750/
Change-Id: I366b8918a7cf972d90e167c3bebd635a35ea60a3
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
Karol Lewandowski [Wed, 5 Jun 2024 12:36:50 +0000 (14:36 +0200)]
gcc14 fix: Add missing include
Change-Id: I246815dca73e8d46a081a830fa72d2f7d690ceee
Łukasz Stelmach [Tue, 4 Jun 2024 13:12:47 +0000 (15:12 +0200)]
MemoryLimit has been replaced by MemoryMax
The MemoryLimit option is marked as deprecated in systemd and needs to
be changed to MemoryMax in unit files.
Change-Id: Id135764af5349ceb710df7093b2229c2af4b97e8
Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com>
Chanwoo Choi [Thu, 16 May 2024 02:07:14 +0000 (11:07 +0900)]
packaging: Disable sessiond when it is not used on low-memory model
Disable sessiond when it is not used on low-memory model
according to the following build macro rules:
- %if ("%{sec_buildconf_optimized_memory}" != "1")
: this key is used for both of Licensing 1GB/1.5GB model and Samsung 1GB model
- %if ("%{sec_buildconf_product_lite_tizen}" != "y")
: it is used for only Licensing 1GB/1.5GB/2.5GB)
Change-Id: I0c064a6308892792e08cbfe780fecf78cbbbdbd9
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Chanwoo Choi [Thu, 15 Feb 2024 11:41:22 +0000 (20:41 +0900)]
spec: Replace with sec_buildconf_optimized_memory to remove dependency from sessiond
If sec_buildconf_optimized_memory equals with 1,
indicates that optimized_memory feature is enabled.
Because sessiond is not used on target with the enabled optimized_memory,
it should be not executed.
Replace sec_buildconf_product_lite_tizen with sec_buildconf_optimized_memory
in order to achieve the above role.
Change-Id: Ie62dedfbd80de92484f4391705d51346080ac5c4
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Youngjae Cho [Wed, 24 Jan 2024 01:39:13 +0000 (10:39 +0900)]
spec: Remove dependency between libsessiond and sessiond if multi-user is not used
In environments that have no multi-user, sessiond does nothing. However,
libsessiond can work alone. For example, subsession_get_user_list()
provides a way that fetches user list without sessiond. However,
libsessiond is bound to sessiond by the below specification.
%package -n libsessiond
Requires: sessiond = %{version}-%{release}
Therefore, one who needs "only" libsessiond has no choice but pulls
sessiond in together. This is matter on a system with insufficient
memory, with no use of multi-user environment as sessiond consumes
memory while does nothing. Currently security-manager is one example
that pulls libsessiond in.
Change-Id: I22fb3b0917a2ee2ad6e36f56426c23767ce648ef
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
Adam Michalski [Thu, 18 Jan 2024 14:28:21 +0000 (15:28 +0100)]
Fix Coverity issues
Change-Id: I488696b437817ae23707e4f92305d83fe1943919
Unsung Lee [Mon, 23 Oct 2023 03:00:10 +0000 (12:00 +0900)]
service: Set MemoryLimit to 20MB
Change-Id: I2d7387f6d273e2d4628ca528c389e3840a695ffc
Signed-off-by: Unsung Lee <unsung.lee@samsung.com>
Adam Michalski [Fri, 30 Jun 2023 12:51:24 +0000 (14:51 +0200)]
sessiond: Fix a memory leak
Change-Id: I758a664f234206809310bf8074de7537746e2937
Adam Michalski [Tue, 18 Apr 2023 13:51:34 +0000 (15:51 +0200)]
libsessiond: Add `sessiond_free_user_list()` API function
Even though it was explicitly stated that one needs to call free()
function after `subsession_get_user_list` to deallocate the user list
array, the addition of the above routine makes the libsessiond
interface more natural, since the API consumer does not need to
reach out to a lower layer (glibc) function.
Change-Id: I1897c05adf4cd1b759ef0bc7ecf25ef966ac5327
Adam Michalski [Mon, 17 Apr 2023 15:02:22 +0000 (17:02 +0200)]
libsession: update doxygen API documentation
Provided doxgen API documentation wasn't complete and accurate:
not all possible error codes were listed as well as the description for
the `unregister_event_callback` API call was inaccurate.
Change-Id: Ib3da4e8f1ad6f50f9b14ac84f25b8d3b6b07c543
Adam Michalski [Tue, 21 Mar 2023 15:33:10 +0000 (16:33 +0100)]
Fix subsession switch user completion tests
Additionally, added more checks and logs.
Change-Id: I999ab1cfba81e73fdb0814a20a5f7ba9821aeffb
Adam Michalski [Thu, 16 Mar 2023 14:26:28 +0000 (15:26 +0100)]
[fix] sessiond: OnSwitchUser: `prev_subsession_id` being overwritten
Due to incorrect use of `std::string_view`, the value of
`prev_subsession_id` was overwritten by `next_subsession_id`.
Change-Id: Id198573cfae9cdc4f7e3edcc87f006801dfb8395
Adam Michalski [Mon, 9 Jan 2023 16:51:31 +0000 (17:51 +0100)]
sessiond: make subsession remove user operation atomic
Change-Id: I04d6d76062edf4e7de955a2f34cb40ee59ffc123
Michal Bloch [Tue, 13 Dec 2022 11:11:32 +0000 (12:11 +0100)]
Release 0.7.7.2
Hotfix a memory leak in the library.
Change-Id: I268d83c1f22fbb0c1b3d32000189a85788c8886d
Michal Bloch [Tue, 13 Dec 2022 10:30:57 +0000 (10:30 +0000)]
Merge "libsessiond: fix a memory leak in the `query_dir_via_readdir` routine" into tizen
Adam Michalski [Mon, 12 Dec 2022 13:57:35 +0000 (14:57 +0100)]
libsessiond: fix a memory leak in the `query_dir_via_readdir` routine
`subsession_get_user_list` has non-obvious semantics. When it is called
with the `user_list` parameter set to NULL, the caller is only
interested in the number of subsessions associated with the
`session_uid` user. In this case it is unnecessary and undesirable to
allocate memory for the user list, as it leads to a memory leak, since
we are not passing the pointer to the caller.
Change-Id: Iac30507f6e3ac826ac66254b9404edbf17d95230
Adam Michalski [Mon, 12 Dec 2022 15:02:29 +0000 (16:02 +0100)]
libsessiond: fix unchecked return value in `subsession_get_user_list`
`getpwuid_r`s semantics is a bit tricky: normally it returns 0 and sets
the output parameter (struct passwd **result) accordingly. If no
matching password record was found, it returns 0 and `*result` is set
to NULL. In case of error, an error number is returned, but the
`*result` is also set to NULL. Since for the API client the reason does
not matter, not checking the return value from the `getpwuid_r` syscall
is not an issue (we're returning `SUBSESSION_ERROR_IO_ERROR` in both
cases). However, to satisfy static analysers we have, it's not
necessarily a bad idea to perform an explicit return value check.
Change-Id: Iefaeccd09331cff977b7cc2a449367de7d5c7db1
Adam Michalski [Tue, 6 Dec 2022 12:27:18 +0000 (13:27 +0100)]
subsession-client-example: Move the call to bus unwatch to the callback
Change-Id: I8e54fa4aff6fb92ff0fe8e8f00f2c663cf73a93c