summaryrefslogtreecommitdiffhomepage
path: root/src/stoolie/slbt_stoolie_ctx.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/stoolie/slbt_stoolie_ctx.c')
-rw-r--r--src/stoolie/slbt_stoolie_ctx.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/stoolie/slbt_stoolie_ctx.c b/src/stoolie/slbt_stoolie_ctx.c
index ec87821..b74edd3 100644
--- a/src/stoolie/slbt_stoolie_ctx.c
+++ b/src/stoolie/slbt_stoolie_ctx.c
@@ -263,15 +263,13 @@ int slbt_st_get_stoolie_ctx(
SLBT_SYSTEM_ERROR(dctx,dpath));
/* m4 directory */
- if (!(dpath = ctx->m4buf))
- dpath = slbt_this_dir;
-
- if ((ctx->fdm4 = openat(fdtgt,dpath,O_DIRECTORY,0)) < 0)
- if (errno == ENOENT)
- if (!mkdirat(fdtgt,dpath,0755))
- ctx->fdm4 = openat(fdtgt,dpath,O_DIRECTORY,0);
+ if ((dpath = ctx->m4buf))
+ if ((ctx->fdm4 = openat(fdtgt,dpath,O_DIRECTORY,0)) < 0)
+ if (errno == ENOENT)
+ if (!mkdirat(fdtgt,dpath,0755))
+ ctx->fdm4 = openat(fdtgt,dpath,O_DIRECTORY,0);
- if (ctx->fdm4 < 0)
+ if (dpath && (ctx->fdm4 < 0))
return slbt_st_free_stoolie_ctx_impl(
ctx,(-1),
SLBT_SYSTEM_ERROR(dctx,dpath));