summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mount/fstab.c12
-rw-r--r--mount/mount.c14
-rw-r--r--mount/xmalloc.h6
3 files changed, 13 insertions, 19 deletions
diff --git a/mount/fstab.c b/mount/fstab.c
index 277f4f1d5..108010f9d 100644
--- a/mount/fstab.c
+++ b/mount/fstab.c
@@ -100,12 +100,6 @@ fstab_head() {
}
static void
-my_free(const void *s) {
- if (s)
- free((void *) s);
-}
-
-static void
my_free_mc(struct mntentchn *mc) {
if (mc) {
my_free(mc->m.mnt_fsname);
@@ -334,7 +328,7 @@ getfs_by_specdir (const char *spec, const char *dir) {
if (streq(dr, dir))
ok = 1;
- my_free(dr);
+ free(dr);
if (!ok)
continue;
}
@@ -354,7 +348,7 @@ getfs_by_specdir (const char *spec, const char *dir) {
if (has_uuid(spec, fs + 5))
ok = 1;
}
- my_free(fs);
+ free(fs);
if (!ok)
continue;
}
@@ -404,7 +398,7 @@ getfs_by_spec (const char *spec) {
else if (!strcmp(name,"UUID"))
mc = getfs_by_uuid (value);
- free((void *) name);
+ free(name);
return mc;
}
diff --git a/mount/mount.c b/mount/mount.c
index ccdcba531..5f66cb260 100644
--- a/mount/mount.c
+++ b/mount/mount.c
@@ -227,12 +227,6 @@ parse_string_opt(char *s) {
return 0;
}
-static void
-my_free(const void *s) {
- if (s)
- free((void *) s);
-}
-
/* Report on a single mount. */
static void
print_one (const struct my_mntent *me) {
@@ -544,7 +538,7 @@ create_mtab (void) {
mnt.mnt_type = fstab->m.mnt_type;
mnt.mnt_opts = fix_opts_string (flags, extra_opts, NULL);
mnt.mnt_freq = mnt.mnt_passno = 0;
- my_free(extra_opts);
+ free(extra_opts);
if (my_addmntent (mfp, &mnt) == 1) {
int errsv = errno;
@@ -1501,7 +1495,8 @@ mount_one (const char *spec, const char *node, const char *types,
if (verbose && status2)
printf (_("mount: giving up \"%s\"\n"), spec);
- my_free(opts);
+ free(opts);
+
my_free(node);
my_free(types);
exit (0); /* child stops here */
@@ -1831,8 +1826,7 @@ getfs(const char *spec, const char *uuid, const char *label)
if (!mc && (devname || spec))
mc = getmntfile (devname ? devname : spec);
- if (devname)
- my_free(devname);
+ my_free(devname);
return mc;
}
diff --git a/mount/xmalloc.h b/mount/xmalloc.h
index 978e541a7..2fc0a7e55 100644
--- a/mount/xmalloc.h
+++ b/mount/xmalloc.h
@@ -5,4 +5,10 @@ extern void *xmalloc(size_t size);
extern void *xrealloc(void *p, size_t size);
extern char *xstrdup(const char *s);
+/*
+ * free(p); when 'p' is 'const char *' makes gcc unhappy:
+ * warning: passing argument 1 of ‘free’ discards qualifiers from pointer target type
+ */
+#define my_free(_p) free((void *) _p)
+
#endif /* MOUNT_XMALLOC_H */