- 15 Feb, 2021 1 commit
-
-
Felix Fietkau authored
Add a new `ABIVERSION` define which allows to control the SOVERSION used for the built shared library. This is needed for downstream packaging to properly track breaking ABI changes when updating to newer versions of the library. Signed-off-by:
Felix Fietkau <nbd@nbd.name>
-
- 04 Dec, 2020 1 commit
-
-
Daniel Golle authored
When ubus is running as root, /var/run/ubus most likely hasn't been created as well (as that's the homedir of user ubus, and if a user ubus was found, then ubus would run being that user). Blindly attempt to create the directory (which won't do any harm if it does exist and/or ubus is not running as root) to still be able to start ubus in case of user ubus not existing. Signed-off-by:
Daniel Golle <daniel@makrotopia.org>
-
- 25 Oct, 2020 1 commit
-
-
Ansuel Smith authored
Add support for wildcard in methods to permit access to all methods defined by the object. This can be usefull for process that run as non-root user and needs to access ubus method. Signed-off-by:
Ansuel Smith <ansuelsmth@gmail.com> Signed-off-by:
Daniel Golle <daniel@makrotopia.org>
-
- 19 Oct, 2020 1 commit
-
-
Daniel Golle authored
This makes it possible to run ubus as non-root. Signed-off-by:
Daniel Golle <daniel@makrotopia.org>
-
- 05 Aug, 2020 2 commits
-
-
ynezz authored
Add new subscribe command help. Fixes: 59835ae5 ("cli: document usage of "subscribe" command") Signed-off-by:
Petr Štetiar <ynezz@true.cz>
-
Rafał Miłecki authored
Support for "subscribe" command was added years ago in the commit 453b87f6 ("cli: add support for subscribing to objects"). Document its usage. Cc: Felix Fietkau <nbd@nbd.name> Signed-off-by:
Rafał Miłecki <rafal@milecki.pl>
-
- 15 Mar, 2020 1 commit
-
-
Alin Nastac authored
If the Lua number exceeds the maximum value representable by an unsigned 32bit integer, store it in an unsigned 64bit integer field instead. Signed-off-by:
Alin Nastac <alin.nastac@gmail.com> [align code style, reword commit message] Signed-off-by:
Jo-Philipp Wich <jo@mein.io>
-
- 05 Jan, 2020 1 commit
-
-
Peter Stadler authored
Use extern "C" { ... } if using libubus.h in a C++ project. Signed-off-by:
Peter Stadler <peter.stadler@student.uibk.ac.at>
-
- 27 Dec, 2019 1 commit
-
-
ynezz authored
In commit 5d7ca830 ("ubusd/libubus-io: fix variable sized struct position warning") the position of cmsghdr struct has been changed in order to fix clang-9 compiler warning, but it has introduced regression in at least `logread` which hanged indefinitely. So this patch reworks the socket descriptor passing in a way recommended in the `cmsg(3)` manual page. Ref: http://lists.infradead.org/pipermail/openwrt-devel/2019-December/020840.html Fixes: 5d7ca830 ("ubusd/libubus-io: fix variable sized struct position warning") Reported-by:
Hannu Nyman <hannu.nyman@welho.com> Signed-off-by:
Petr Štetiar <ynezz@true.cz>
-
- 26 Dec, 2019 1 commit
-
-
ynezz authored
In commit 08f17c87 ("add fuzzer and cram based unit tests") some fuzz/unit tests were added so enable them on CI as well. Signed-off-by:
Petr Štetiar <ynezz@true.cz>
-
- 19 Dec, 2019 5 commits
-
-
ynezz authored
blob_parse expects blobs from trusted inputs, but it can be supplied with possibly malicious blobs from untrusted inputs as well, which might lead to undefined behaviour and/or crash of ubus daemon. In order to prevent such conditions, switch to blob_parse_untrusted which should hopefully handle such untrusted inputs appropriately. Signed-off-by:
Petr Štetiar <ynezz@true.cz>
-
ynezz authored
scan-build from clang-9 has reported following: libubox/list.h:141:2: warning: Use of memory after it is freed _list_add(_new, head, head->next); Signed-off-by:
Petr Štetiar <ynezz@true.cz>
-
ynezz authored
This dereference could possibly happen if the calloc call fails as the return value is unchecked. While at it refactor the code little bit to make it easier to follow, use safe list iterator and provide return value for ubusd_monitor_connect. Signed-off-by:
Petr Štetiar <ynezz@true.cz>
-
ynezz authored
ARRAY_SIZE is available from libubox/utils.h. Signed-off-by:
Petr Štetiar <ynezz@true.cz>
-
ynezz authored
scan-build from clang-9 has reported following: libubox/list.h:83:22: warning: Use of memory after it is freed entry->next->prev = entry->prev; ^~~~~~~~~~~ ubusd_event.c:42:3: warning: Use of memory after it is freed ubusd_delete_event_source(ev); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Which might be a false positives, but in order to make the code pass the static analyzer checks, rewrite the while loops on lists with the safe list iterator. Signed-off-by:
Petr Štetiar <ynezz@true.cz>
-
- 16 Dec, 2019 10 commits
-
-
ynezz authored
Fix copy&paste error in Lua ubus subscriber removal callback. Addresses-Coverity-ID: 1412311 ("Copy-paste error") Signed-off-by:
Petr Štetiar <ynezz@true.cz>
-
ynezz authored
scan-build from clang-9 has reported following: ubus.c:837:16: warning: Access to field 'rnotify' results in a dereference of a null pointer (loaded from variable 'sub') sub->rnotify = luaL_ref(L, -2); Which is false positive as the lua_error() does a long jump and therefore never returns and this long jump probably confuses the static analyzer. So this patch workarounds this false positive by helping static analyzer by using common Lua idiom which is to return lua_error()'s return value. Ref: https://www.lua.org/manual/5.1/manual.html#lua_error Addresses-Coverity-ID: 1412355 ("Dereference after null check") Signed-off-by:
Petr Štetiar <ynezz@true.cz>
-
ynezz authored
For improved QA etc. Signed-off-by:
Petr Štetiar <ynezz@true.cz>
-
ynezz authored
In order to allow reusability in unit testing & fuzzing. Signed-off-by:
Petr Štetiar <ynezz@true.cz>
-
ynezz authored
Fixes following error reported by clang-9 analyzer: examples/server.c:244:2: warning: Value stored to 'argc' is never read argc -= optind; ^ ~~~~~~ examples/server.c:245:2: warning: Value stored to 'argv' is never read argv += optind; ^ ~~~~~~ Signed-off-by:
Petr Štetiar <ynezz@true.cz>
-
ynezz authored
Uses currently proof-of-concept openwrt-ci[1] in order to: * improve the quality of the codebase in various areas * decrease code review time and help merging contributions faster * get automagic feedback loop on various platforms and tools - out of tree build with OpenWrt SDK on following targets: * ath79-generic * imx6-generic * malta-be * mvebu-cortexa53 - out of tree native build on x86/64 with GCC (versions 7, 8, 9) and Clang 10 - out of tree native x86/64 static code analysis with cppcheck and scan-build from Clang 9 1. https://gitlab.com/ynezz/openwrt-ci/ Signed-off-by:
Petr Štetiar <ynezz@true.cz>
-
ynezz authored
Fixes following error reported by clang-9 analyzer: libubus.c:286:19: error: incompatible pointer types assigning to 'struct blob_attr *' from 'char *' [-Werror,-Wincompatible-pointer-types] ctx->msgbuf.data = (char *) calloc(UBUS_MSG_CHUNK_SIZE, sizeof(char)); Result of 'calloc' is converted to a pointer of type 'struct blob_attr', which is incompatible with sizeof operand type 'char'. Signed-off-by:
Petr Štetiar <ynezz@true.cz>
-
ynezz authored
clang-9 on x86/64 has reported following warnings/errors: libubus-acl.c:123:2: error: comparison of integers of different signs: 'size_t' (aka 'unsigned long') and 'int' [-Werror,-Wsign-compare] libubus-io.c:108:18: error: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Werror,-Wsign-compare] libubus-io.c:395:56: error: comparison of integers of different signs: 'ssize_t' (aka 'long') and 'size_t' (aka 'unsigned long') [-Werror,-Wsign-compare] libubus-req.c:441:4: error: comparison of integers of different signs: 'size_t' (aka 'unsigned long') and 'int' [-Werror,-Wsign-compare] ubusd_acl.c:119:18: error: comparison of integers of different signs: 'int' and 'unsigned long' [-Werror,-Wsign-compare] ubusd_acl.c:152:5: error: comparison of integers of different signs: 'size_t' (aka 'unsigned long') and 'int' [-Werror,-Wsign-compare] ubusd_acl.c:348:3: error: comparison of integers of different signs: 'size_t' (aka 'unsigned long') and 'int' [-Werror,-Wsign-compare] ubusd_acl.c:352:3: error: comparison of integers of different signs: 'size_t' (aka 'unsigned long') and 'int' [-Werror,-Wsign-compare] ubusd_acl.c:357:3: error: comparison of integers of different signs: 'size_t' (aka 'unsigned long') and 'int' [-Werror,-Wsign-compare] ubusd_acl.c:362:3: error: comparison of integers of different signs: 'size_t' (aka 'unsigned long') and 'int' [-Werror,-Wsign-compare] ubusd_acl.c:367:3: error: comparison of integers of different signs: 'size_t' (aka 'unsigned long') and 'int' [-Werror,-Wsign-compare] ubusd_acl.c:447:16: error: comparison of integers of different signs: 'int' and '__size_t' (aka 'unsigned long') [-Werror,-Wsign-compare] ubusd_acl.c:502:18: error: comparison of integers of different signs: 'int' and 'unsigned long' [-Werror,-Wsign-compare] ubusd.c:123:13: error: comparison of integers of different signs: 'int' and 'unsigned long' [-Werror,-Wsign-compare] ubusd.c:170:15: error: comparison of integers of different signs: 'int' and 'unsigned long' [-Werror,-Wsign-compare] ubusd.c:262:43: error: comparison of integers of different signs: 'int' and 'unsigned long' [-Werror,-Wsign-compare] ubusd.c:287:30: error: comparison of integers of different signs: 'int' and 'unsigned long' [-Werror,-Wsign-compare] ubusd_event.c:170:18: error: comparison of integers of different signs: 'int' and 'unsigned long' [-Werror,-Wsign-compare] ubusd_obj.c:71:2: error: comparison of integers of different signs: 'size_t' (aka 'unsigned long') and 'int' [-Werror,-Wsign-compare] Signed-off-by:
Petr Štetiar <ynezz@true.cz>
-
ynezz authored
Fixes following clang-9 compiler warnings: ubusd.c:99:18: error: field 'h' with variable sized type 'struct cmsghdr' not at the end of a struct or class is a GNU extension [-Werror,-Wgnu-variable-sized-type-not-at-end] struct cmsghdr h; ^ Signed-off-by:
Petr Štetiar <ynezz@true.cz>
-
ynezz authored
Fixes following clang-9 compiler warning: ubusd.c:36:19: error: comparison of integers of different signs: 'uint32_t' (aka 'unsigned int') and 'int' [-Werror,-Wsign-compare] if (ub->refcount == ~0) { ~~~~~~~~~~~~ ^ ~~ Signed-off-by:
Petr Štetiar <ynezz@true.cz>
-
- 11 Dec, 2019 1 commit
-
-
ynezz authored
Let's enforce additional automatic checks enforced by the compiler in order to catch possible errors during compilation. Signed-off-by:
Petr Štetiar <ynezz@true.cz>
-
- 01 Jul, 2019 1 commit
-
-
Alban Bedel authored
Extend the cmake config to build and install static libraries when -DBUILD_STATIC=ON is used. Signed-off-by:
Alban Bedel <albeu@free.fr>
-
- 23 Apr, 2019 1 commit
-
-
Felix Fietkau authored
Avoids unnecessary delays and/or blocking on messages Signed-off-by:
Felix Fietkau <nbd@nbd.name>
-
- 16 Apr, 2019 2 commits
-
-
Felix Fietkau authored
Data is often already present here Signed-off-by:
Felix Fietkau <nbd@nbd.name>
-
Felix Fietkau authored
If the header is read but not the remainder of the message, the stream will be out of sync and parsing of future messages won't work Signed-off-by:
Felix Fietkau <nbd@nbd.name>
-
- 06 Oct, 2018 4 commits
-
-
Hans Dedecker authored
Adds event send access list support in ubus via the "send" keyword Example of a json file: { "user": "superuser", "send": [ "wireless.*" ], } Signed-off-by:
Koen Dergent <koen.cj.dergent@gmail.com> Signed-off-by:
Hans Dedecker <dedeckeh@gmail.com>
-
Hans Dedecker authored
Adds event listen access list support in ubus via the "listen" keyword Example of a json file: { "user": "superuser", "listen": [ "network.*" ], } Signed-off-by:
Koen Dergent <koen.cj.dergent@gmail.com> Signed-off-by:
Hans Dedecker <dedeckeh@gmail.com>
-
Hans Dedecker authored
Wildcard access list support was failing in case multiple wildcards entries were defined and/or when a specific access list string overlapped a wildcard entry. Root cause of the problem was the way how wildcard entries were sorted in the avl tree by the compare function ubusd_acl_match_path resulting into a non acces list match for a given object path. The avl_tree sorting has been changed to make use of avl_strcmp; as such there's no distinction anymore between non-wildcard and wildcard entries in the avl_tree compare function as the boolean partial marks an access list entry as a wildcard entry. When trying to find an access list match for an object path the access list tree is iterated as long as the number of characters between the access list string and object path is monotonically increasing. Signed-off-by:
Hans Dedecker <dedeckeh@gmail.com>
-
Hans Dedecker authored
Rename strmatch_len into ubus_strmatch_len and move it to ubus_common.h Signed-off-by:
Hans Dedecker <dedeckeh@gmail.com>
-
- 10 Sep, 2018 1 commit
-
-
Marcus Comstedt authored
Signed-off-by:
Marcus Comstedt <marcus@mc.pp.se>
-
- 26 Jul, 2018 1 commit
-
-
Felix Fietkau authored
Signed-off-by:
Felix Fietkau <nbd@nbd.name>
-
- 25 Jul, 2018 1 commit
-
-
Felix Fietkau authored
UBUS_MSG_INVOKE and UBUS_MSG_DATA can be sent without UBUS_ATTR_DATA present. Most ubus users assume that the msg argument passed can never be NULL, so this change prevents a crash Signed-off-by:
Felix Fietkau <nbd@nbd.name>
-
- 17 Jan, 2018 3 commits
-
-
Dirk Feytons authored
The callback function registered to be invoked when subscribing to a notification was only passed the notification data (if any) but not the name of the notification. This name is now passed as second argument to remain backwards compatible. The example subscriber.lua has also be updated. Signed-off-by:
Dirk Feytons <dirk.feytons@gmail.com>
-
John Crispin authored
==18834== Warning: invalid file descriptor -1 in syscall close() ==18834== at 0x5326D20: __close_nocancel (syscall-template.S:84) ==18834== by 0x5046DC7: ubus_process_obj_msg (libubus-obj.c:143) ==18834== by 0x5045E98: ubus_process_msg (libubus.c:106) ==18834== by 0x50468D0: ubus_handle_data (libubus-io.c:314) ==18834== by 0x4E3D125: uloop_run_events (uloop.c:198) ==18834== by 0x4E3D125: uloop_run_timeout (uloop.c:555) ==18834== by 0x109BEF: uloop_run (uloop.h:111) ==18834== by 0x109BEF: main (main.c:25) Signed-off-by:
John Crispin <john@phrozen.org>
-
John Crispin authored
valgrind complained about this one ==18632== Warning: invalid file descriptor -1 in syscall close() ==18632== at 0x5326D20: __close_nocancel (syscall-template.S:84) ==18632== by 0x5046C02: ubus_process_invoke (libubus-obj.c:98) ==18632== by 0x5046DC3: ubus_process_obj_msg (libubus-obj.c:142) ==18632== by 0x5045E98: ubus_process_msg (libubus.c:106) ==18632== by 0x50468D0: ubus_handle_data (libubus-io.c:314) ==18632== by 0x4E3D125: uloop_run_events (uloop.c:198) ==18632== by 0x4E3D125: uloop_run_timeout (uloop.c:555) ==18632== by 0x109BEF: uloop_run (uloop.h:111) ==18632== by 0x109BEF: main (main.c:25) Signed-off-by:
John Crispin <john@phrozen.org>
-