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:
9a5cb13
)
Introduce _cleanup_endmntent_
author
Zbigniew Jędrzejewski-Szmek
<zbyszek@in.waw.pl>
Fri, 4 Oct 2013 02:13:55 +0000
(22:13 -0400)
committer
Zbigniew Jędrzejewski-Szmek
<zbyszek@in.waw.pl>
Fri, 4 Oct 2013 02:13:55 +0000
(22:13 -0400)
src/cryptsetup/cryptsetup.c
patch
|
blob
|
history
src/fstab-generator/fstab-generator.c
patch
|
blob
|
history
src/remount-fs/remount-fs.c
patch
|
blob
|
history
src/shared/util.h
patch
|
blob
|
history
diff --git
a/src/cryptsetup/cryptsetup.c
b/src/cryptsetup/cryptsetup.c
index 769c3e4f3165fa198c04f6a70ee7c95e06af75a3..4f2f52a28a236f6fd03946eb494aa078eb899911 100644
(file)
--- a/
src/cryptsetup/cryptsetup.c
+++ b/
src/cryptsetup/cryptsetup.c
@@
-236,31
+236,24
@@
finish:
}
static char *disk_mount_point(const char *label) {
}
static char *disk_mount_point(const char *label) {
- char *mp = NULL;
_cleanup_free_ char *device = NULL;
_cleanup_free_ char *device = NULL;
- FILE *f = NULL;
+
_cleanup_endmntent_
FILE *f = NULL;
struct mntent *m;
/* Yeah, we don't support native systemd unit files here for now */
if (asprintf(&device, "/dev/mapper/%s", label) < 0)
struct mntent *m;
/* Yeah, we don't support native systemd unit files here for now */
if (asprintf(&device, "/dev/mapper/%s", label) < 0)
-
goto finish
;
+
return NULL
;
f = setmntent("/etc/fstab", "r");
if (!f)
f = setmntent("/etc/fstab", "r");
if (!f)
-
goto finish
;
+
return NULL
;
while ((m = getmntent(f)))
while ((m = getmntent(f)))
- if (path_equal(m->mnt_fsname, device)) {
- mp = strdup(m->mnt_dir);
- break;
- }
-
-finish:
- if (f)
- endmntent(f);
+ if (path_equal(m->mnt_fsname, device))
+ return strdup(m->mnt_dir);
- return
mp
;
+ return
NULL
;
}
static int get_password(const char *name, usec_t until, bool accept_cached, char ***passwords) {
}
static int get_password(const char *name, usec_t until, bool accept_cached, char ***passwords) {
diff --git
a/src/fstab-generator/fstab-generator.c
b/src/fstab-generator/fstab-generator.c
index 9efccb983de752d14f1b310829dce33341524941..9e7d55d177650e1a4f2642013dd0ac10d2eafc35 100644
(file)
--- a/
src/fstab-generator/fstab-generator.c
+++ b/
src/fstab-generator/fstab-generator.c
@@
-301,15
+301,12
@@
static int add_mount(
}
static int parse_fstab(const char *prefix, bool initrd) {
}
static int parse_fstab(const char *prefix, bool initrd) {
-
_cleanup_free_ char *fstab_path = NULL
;
- FILE *f;
+
char *fstab_path
;
+
_cleanup_endmntent_
FILE *f;
int r = 0;
struct mntent *me;
int r = 0;
struct mntent *me;
- fstab_path = strjoin(strempty(prefix), "/etc/fstab", NULL);
- if (!fstab_path)
- return log_oom();
-
+ fstab_path = strappenda(strempty(prefix), "/etc/fstab");
f = setmntent(fstab_path, "r");
if (!f) {
if (errno == ENOENT)
f = setmntent(fstab_path, "r");
if (!f) {
if (errno == ENOENT)
@@
-328,10
+325,8
@@
static int parse_fstab(const char *prefix, bool initrd) {
what = fstab_node_to_udev_node(me->mnt_fsname);
where = strjoin(strempty(prefix), me->mnt_dir, NULL);
what = fstab_node_to_udev_node(me->mnt_fsname);
where = strjoin(strempty(prefix), me->mnt_dir, NULL);
- if (!what || !where) {
- r = log_oom();
- goto finish;
- }
+ if (!what || !where)
+ return log_oom();
if (is_path(where))
path_kill_slashes(where);
if (is_path(where))
path_kill_slashes(where);
@@
-369,8
+364,6
@@
static int parse_fstab(const char *prefix, bool initrd) {
r = k;
}
r = k;
}
-finish:
- endmntent(f);
return r;
}
return r;
}
diff --git
a/src/remount-fs/remount-fs.c
b/src/remount-fs/remount-fs.c
index f432718d6b9148d615fda958a88f90f4790318c3..847637a12ca3988e9f3970e2407e4a82bc54570a 100644
(file)
--- a/
src/remount-fs/remount-fs.c
+++ b/
src/remount-fs/remount-fs.c
@@
-40,7
+40,7
@@
int main(int argc, char *argv[]) {
int ret = EXIT_FAILURE;
int main(int argc, char *argv[]) {
int ret = EXIT_FAILURE;
- FILE *f = NULL;
+
_cleanup_endmntent_
FILE *f = NULL;
struct mntent* me;
Hashmap *pids = NULL;
struct mntent* me;
Hashmap *pids = NULL;
@@
-57,13
+57,11
@@
int main(int argc, char *argv[]) {
f = setmntent("/etc/fstab", "r");
if (!f) {
f = setmntent("/etc/fstab", "r");
if (!f) {
- if (errno == ENOENT) {
- ret = EXIT_SUCCESS;
- goto finish;
- }
+ if (errno == ENOENT)
+ return EXIT_SUCCESS;
log_error("Failed to open /etc/fstab: %m");
log_error("Failed to open /etc/fstab: %m");
-
goto finish
;
+
return EXIT_FAILURE
;
}
pids = hashmap_new(trivial_hash_func, trivial_compare_func);
}
pids = hashmap_new(trivial_hash_func, trivial_compare_func);
@@
-162,8
+160,5
@@
finish:
if (pids)
hashmap_free_free(pids);
if (pids)
hashmap_free_free(pids);
- if (f)
- endmntent(f);
-
return ret;
}
return ret;
}
diff --git
a/src/shared/util.h
b/src/shared/util.h
index c2e6a685c85193fba94ddac95cf3148645a954cd..c9d078257f5a96620c4c03054c012060b0b180f1 100644
(file)
--- a/
src/shared/util.h
+++ b/
src/shared/util.h
@@
-39,6
+39,7
@@
#include <stddef.h>
#include <unistd.h>
#include <locale.h>
#include <stddef.h>
#include <unistd.h>
#include <locale.h>
+#include <mntent.h>
#include "macro.h"
#include "time-util.h"
#include "macro.h"
#include "time-util.h"
@@
-578,6
+579,11
@@
static inline void umaskp(mode_t *u) {
umask(*u);
}
umask(*u);
}
+static inline void endmntentp(FILE **f) {
+ if (*f)
+ endmntent(*f);
+}
+
#define _cleanup_free_ _cleanup_(freep)
#define _cleanup_fclose_ _cleanup_(fclosep)
#define _cleanup_pclose_ _cleanup_(pclosep)
#define _cleanup_free_ _cleanup_(freep)
#define _cleanup_fclose_ _cleanup_(fclosep)
#define _cleanup_pclose_ _cleanup_(pclosep)
@@
-585,6
+591,7
@@
static inline void umaskp(mode_t *u) {
#define _cleanup_closedir_ _cleanup_(closedirp)
#define _cleanup_umask_ _cleanup_(umaskp)
#define _cleanup_globfree_ _cleanup_(globfree)
#define _cleanup_closedir_ _cleanup_(closedirp)
#define _cleanup_umask_ _cleanup_(umaskp)
#define _cleanup_globfree_ _cleanup_(globfree)
+#define _cleanup_endmntent_ _cleanup_(endmntentp)
_malloc_ _alloc_(1, 2) static inline void *malloc_multiply(size_t a, size_t b) {
if (_unlikely_(b == 0 || a > ((size_t) -1) / b))
_malloc_ _alloc_(1, 2) static inline void *malloc_multiply(size_t a, size_t b) {
if (_unlikely_(b == 0 || a > ((size_t) -1) / b))