registry: remove a few asprintf/free() calls with snprintf Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
diff --git a/src/registry.c b/src/registry.c
index e23e87b..d6181e1 100644
--- a/src/registry.c
+++ b/src/registry.c
@@ -594,7 +594,7 @@ XKB_EXPORT bool
rxkb_context_include_path_append_default(struct rxkb_context *ctx)
{
const char *home, *xdg, *root, *extra;
- char *user_path;
+ char user_path[PATH_MAX];
bool ret = false;
if (ctx->context_state != CONTEXT_NEW) {
@@ -606,26 +606,17 @@ rxkb_context_include_path_append_default(struct rxkb_context *ctx)
xdg = rxkb_context_getenv(ctx, "XDG_CONFIG_HOME");
if (xdg != NULL) {
- user_path = asprintf_safe("%s/xkb", xdg);
- if (user_path) {
+ if (snprintf_safe(user_path, sizeof(user_path), "%s/xkb", xdg))
ret |= rxkb_context_include_path_append(ctx, user_path);
- free(user_path);
- }
} else if (home != NULL) {
/* XDG_CONFIG_HOME fallback is $HOME/.config/ */
- user_path = asprintf_safe("%s/.config/xkb", home);
- if (user_path) {
+ if (snprintf_safe(user_path, sizeof(user_path), "%s/.config/xkb", home))
ret |= rxkb_context_include_path_append(ctx, user_path);
- free(user_path);
- }
}
if (home != NULL) {
- user_path = asprintf_safe("%s/.xkb", home);
- if (user_path) {
+ if (snprintf_safe(user_path, sizeof(user_path), "%s/.xkb", home))
ret |= rxkb_context_include_path_append(ctx, user_path);
- free(user_path);
- }
}
extra = rxkb_context_getenv(ctx, "XKB_CONFIG_EXTRA_PATH");