<feed xmlns='http://www.w3.org/2005/Atom'>
<title>procd/service, branch master</title>
<subtitle>OpenWrt service / process manager</subtitle>
<id>https://git.openwrt.org/project/procd/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/procd/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/procd/'/>
<updated>2026-05-04T11:28:32Z</updated>
<entry>
<title>instance: disable console logging</title>
<updated>2026-05-04T11:28:32Z</updated>
<author>
<name>Andre Heider</name>
</author>
<published>2026-04-12T16:37:45Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/procd/commit/?id=81119d3f249d765789d1ac84586e8d4e4f8ee112'/>
<id>urn:sha1:81119d3f249d765789d1ac84586e8d4e4f8ee112</id>
<content type='text'>
This spams the logs with every in- and outcoming byte.

Signed-off-by: Andre Heider &lt;a.heider@gmail.com&gt;
</content>
</entry>
<entry>
<title>instance: don't print error in case cgroups are disabled</title>
<updated>2026-03-13T22:32:39Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-03-12T22:10:24Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/procd/commit/?id=58eb263d5abe03f8c1280bdfa65a3b052614215d'/>
<id>urn:sha1:58eb263d5abe03f8c1280bdfa65a3b052614215d</id>
<content type='text'>
cgroups aren't enabled on targets with small_flash, which currently
means that the user is bothered with noisy warning messages because
the instance cgroup cannot be created.

Silently skip cgroups setup if not supported by the kernel, as it was
before commit 7e5b324 ("instance: check length of names when creating
cgroups").

Fixes: #33
Fixes: 7e5b324 ("instance: check length of names when creating cgroups")
Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>instance: use positive error numbers for strerror()</title>
<updated>2026-03-13T22:32:36Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-03-12T22:06:58Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/procd/commit/?id=9baf019a6f7203da50edae91c3638c98bfa357ee'/>
<id>urn:sha1:9baf019a6f7203da50edae91c3638c98bfa357ee</id>
<content type='text'>
strerror() expects positive error numbers, but instance_add_cgroup()
returns negative errors. Invert the error value, so strerror becomes
meaningful.

Fixes: 7e5b324 ("instance: check length of names when creating cgroups")
Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>service: fix use-after-free in per-instance set_data handler</title>
<updated>2026-03-11T17:27:53Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2026-03-11T17:21:54Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/procd/commit/?id=129b729f757ce625cf39601d24d97f4d92db7a7e'/>
<id>urn:sha1:129b729f757ce625cf39601d24d97f4d92db7a7e</id>
<content type='text'>
service_handle_set_data() filled the instance data list with pointers
directly into the ubus request message buffer. After the handler
returned, ubus freed that buffer, leaving dangling pointers that
caused a crash when instance_dump() later iterated the list.

Fix this by duplicating the blob data with blob_memdup(), mirroring
what service_update_data() already does for service-level data.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>instance: use mkdir_p helper</title>
<updated>2026-02-14T21:16:47Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-02-14T20:43:13Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/procd/commit/?id=180ffccf79d1a1a2c3eb644e26f6d87b1cbcfffd'/>
<id>urn:sha1:180ffccf79d1a1a2c3eb644e26f6d87b1cbcfffd</id>
<content type='text'>
Use mkdir_p() libubox helper function to create cgroup instance
directories. This simplifies instance_add_cgroup() and also avoids
returning an error in case the service directory already exists.

Fixes: openwrt/procd#31
Fixes: 7e5b324 ("instance: check length of names when creating cgroups")
Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>instance: check length of names when creating cgroups</title>
<updated>2026-02-09T11:37:13Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-02-06T11:31:42Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/procd/commit/?id=7e5b324cc8fee8a315debd5f8e1e5ea9badc903c'/>
<id>urn:sha1:7e5b324cc8fee8a315debd5f8e1e5ea9badc903c</id>
<content type='text'>
A stack buffer overflow may occur during path construction in
instance_add_cgroup if the snprintf calls before the strcat call fill
the 256-byte stack buffer.

Check the length at all stages when creating and appending the string in
the buffer and return an error in case it gets to long.

Fixes: 83053b6 ("instance: add instances into unified cgroup hierarchy")
Fixes: TOB-OWRT-8
Reported-by: Trail of Bits
Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>service instance: Improve handling of watchdog config changes</title>
<updated>2026-02-09T11:31:44Z</updated>
<author>
<name>Tim Nordell</name>
</author>
<published>2025-10-15T20:52:04Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/procd/commit/?id=afa4391d9cbb0706bbae9c8345436fa6d99c3013'/>
<id>urn:sha1:afa4391d9cbb0706bbae9c8345436fa6d99c3013</id>
<content type='text'>
When the ubus call "ubus call service watchdog" is used, it's expected
that the service might change its watchdog values during runtime when
it pets the watchdog.  The instance restarting behavior was setup though
to restart the instance if these changed.  This causes any service which
adjusts its watchdog to be restarted via "/etc/init.d/SERVICENAME start"
which is probably not what was intended.

Introduce a new variable, self_managed, if the service adjusted these
values at runtime so that a "start" doesn't cause the entire service to
restart.

Signed-off-by: Tim Nordell &lt;tnordell@airgain.com&gt;
</content>
</entry>
<entry>
<title>service instance: Fix overwriting of watchdog linked list members</title>
<updated>2026-02-09T11:31:44Z</updated>
<author>
<name>Tim Nordell</name>
</author>
<published>2025-10-15T20:43:59Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/procd/commit/?id=52c64d24ce9cf255b9c348e5db118a35c9407d75'/>
<id>urn:sha1:52c64d24ce9cf255b9c348e5db118a35c9407d75</id>
<content type='text'>
The instance_config_move(...) function copies the settings from a newly
constructed instance from a "ubus call service set {...}" call into
a prior instance.  The `in-&gt;watchdog.timeout` is of the type
`struct uloop_timeout` which contains a `struct list` inside of it.  This
list is a linked list structure, so when the uloop_timeout is already
in the linked list, this overwrites this particular location with a NULL
pointer for the next/prev entries.  This causes procd to crash.

This crash occurs every time "ubus call service set {...}" is called (e.g.
via /etc/init.d/SERVICE start) when a daemon is using the "watchdog"
feature has already been started.

Fixes: 28be011 ("instance: make sure values are not inherited from previous runs")
Signed-off-by: Tim Nordell &lt;tnordell@airgain.com&gt;
</content>
</entry>
<entry>
<title>service: send ubus notifications for event triggers</title>
<updated>2025-10-02T09:03:45Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2025-10-02T09:03:41Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/procd/commit/?id=cb40d082b12651086e79b452be66717ce3bdc23e'/>
<id>urn:sha1:cb40d082b12651086e79b452be66717ce3bdc23e</id>
<content type='text'>
This makes it easier to use procd as distribution for system events

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>service: implement set_data ubus method</title>
<updated>2025-09-30T17:47:04Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2025-09-30T17:47:03Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/procd/commit/?id=94bfb9cf423886a838027b4efcfe717077a23451'/>
<id>urn:sha1:94bfb9cf423886a838027b4efcfe717077a23451</id>
<content type='text'>
This can be used to update service and instance data explicitly.
Without this change, instances could only be updated by sending the full
instance data again.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
</feed>
