chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
97f2d76
)
udev: link-config - use _cleanup_ macro locally
author
Tom Gundersen
<teg@jklm.no>
Tue, 29 Oct 2013 14:36:26 +0000
(15:36 +0100)
committer
Tom Gundersen
<teg@jklm.no>
Tue, 29 Oct 2013 15:12:11 +0000
(16:12 +0100)
src/udev/net/link-config.c
patch
|
blob
|
history
diff --git
a/src/udev/net/link-config.c
b/src/udev/net/link-config.c
index 598f93e384cdfaa40627fc62ad279f7047c3ed0f..cc8ff6fda781625ce05ec5b19c973dac25739355 100644
(file)
--- a/
src/udev/net/link-config.c
+++ b/
src/udev/net/link-config.c
@@
-49,8
+49,11
@@
struct link_config_ctx {
usec_t link_dirs_ts_usec;
};
usec_t link_dirs_ts_usec;
};
+DEFINE_TRIVIAL_CLEANUP_FUNC(link_config_ctx*, link_config_ctx_free);
+#define _cleanup_link_config_ctx_free_ _cleanup_(link_config_ctx_freep)
+
int link_config_ctx_new(link_config_ctx **ret) {
int link_config_ctx_new(link_config_ctx **ret) {
-
link_config_ctx *ctx
;
+
_cleanup_link_config_ctx_free_ link_config_ctx *ctx = NULL
;
int r;
if (!ret)
int r;
if (!ret)
@@
-61,16
+64,12
@@
int link_config_ctx_new(link_config_ctx **ret) {
return -ENOMEM;
r = ethtool_connect(&ctx->ethtool_fd);
return -ENOMEM;
r = ethtool_connect(&ctx->ethtool_fd);
- if (r < 0) {
- link_config_ctx_free(ctx);
+ if (r < 0)
return r;
return r;
- }
r = sd_rtnl_open(0, &ctx->rtnl);
r = sd_rtnl_open(0, &ctx->rtnl);
- if (r < 0) {
- link_config_ctx_free(ctx);
+ if (r < 0)
return r;
return r;
- }
LIST_HEAD_INIT(ctx->links);
LIST_HEAD_INIT(ctx->links);
@@
-80,16
+79,17
@@
int link_config_ctx_new(link_config_ctx **ret) {
NULL);
if (!ctx->link_dirs) {
log_error("failed to build link config directory array");
NULL);
if (!ctx->link_dirs) {
log_error("failed to build link config directory array");
- link_config_ctx_free(ctx);
return -ENOMEM;
}
return -ENOMEM;
}
+
if (!path_strv_canonicalize_uniq(ctx->link_dirs)) {
log_error("failed to canonicalize link config directories\n");
if (!path_strv_canonicalize_uniq(ctx->link_dirs)) {
log_error("failed to canonicalize link config directories\n");
- link_config_ctx_free(ctx);
return -ENOMEM;
}
*ret = ctx;
return -ENOMEM;
}
*ret = ctx;
+ ctx = NULL;
+
return 0;
}
return 0;
}