c46bddaf55
converted cio_free_device from an upstart job to systemd unit (jstodola) mon_statd: switch to using udevadm settle (#688140) cpuplugd: Fix incorrect multiplication in rules evaluation (#693365) cmsfs-fuse: Delete old file if renaming to an existing file (#690505) cmsfs-fuse: Enlarge fsname string (#690506) cmsfs-fuse: Unable to use cmsfs-fuse if $HOME is not set (#690514) hyptop: Prevent interactive mode on s390 line mode terminals (#690810)
63 lines
1.6 KiB
Diff
63 lines
1.6 KiB
Diff
From 3a7a5e5eaec3aff2e078a91b76f09eb4ae7f8778 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
|
|
Date: Tue, 29 Mar 2011 10:50:37 +0200
|
|
Subject: [PATCH 69/70] cmsfs-fuse: Unable to use cmsfs-fuse if $HOME is not set
|
|
|
|
Description: cmsfs-fuse: Unable to use cmsfs-fuse if $HOME is not set.
|
|
Symptom: Segmentation fault while starting cmsfs-fuse.
|
|
Problem: Missing malloc if $HOME environment variable is not set.
|
|
Solution: Allocate the string buffer before the $HOME query.
|
|
---
|
|
cmsfs-fuse/config.c | 22 ++++++++++++----------
|
|
1 files changed, 12 insertions(+), 10 deletions(-)
|
|
|
|
diff --git a/cmsfs-fuse/config.c b/cmsfs-fuse/config.c
|
|
index 9f9de45..f89e444 100644
|
|
--- a/cmsfs-fuse/config.c
|
|
+++ b/cmsfs-fuse/config.c
|
|
@@ -26,21 +26,20 @@ char *conffile;
|
|
|
|
int open_conf_file(FILE **fh)
|
|
{
|
|
- const char *home_env = getenv("HOME");
|
|
-
|
|
- if (home_env == NULL)
|
|
- goto no_home;
|
|
+ const char *home_env;
|
|
|
|
conffile = malloc(4096);
|
|
if (conffile == NULL)
|
|
DIE_PERROR("malloc failed");
|
|
+
|
|
+ home_env = getenv("HOME");
|
|
+ if (home_env == NULL)
|
|
+ goto no_home;
|
|
+
|
|
sprintf(conffile, "%s/.cmsfs-fuse/filetypes.conf", home_env);
|
|
*fh = fopen(conffile, "r");
|
|
- if (*fh == NULL)
|
|
- goto no_home;
|
|
-out:
|
|
- DEBUG("using config file: %s\n", conffile);
|
|
- return 0;
|
|
+ if (*fh != NULL)
|
|
+ goto out;
|
|
|
|
no_home:
|
|
sprintf(conffile, "%s/%s", TOOLS_SYSCONFDIR,
|
|
@@ -50,7 +49,10 @@ no_home:
|
|
free(conffile);
|
|
return -ENOENT;
|
|
}
|
|
- goto out;
|
|
+out:
|
|
+ DEBUG("using config file: %s\n", conffile);
|
|
+ free(conffile);
|
|
+ return 0;
|
|
}
|
|
|
|
void add_filetype(char *name, struct list *head)
|
|
--
|
|
1.7.4
|
|
|