diff options
author | Ulf Lilleengen <lulf@pvv.ntnu.no> | 2008-08-17 17:26:24 +0200 |
---|---|---|
committer | Ulf Lilleengen <lulf@pvv.ntnu.no> | 2008-08-17 17:26:24 +0200 |
commit | 0cf8ba76c89d677c05067bc7c515d303ab11b3d3 (patch) | |
tree | ce9bb01747d4855b1f5b120e3b07ddde6fbcc05e | |
parent | 262e5b7a2bb0761f1ca7c01861b2c675d73df3c1 (diff) |
- Check for NULL pointer when looking up HOME path.
-rwxr-xr-x | src/mfs_vnops.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/mfs_vnops.c b/src/mfs_vnops.c index c97bb35..f1a0fcc 100755 --- a/src/mfs_vnops.c +++ b/src/mfs_vnops.c @@ -54,6 +54,8 @@ static int mfs_getattr (const char *path, struct stat *stbuf) if (strcmp(path, "/.config") == 0) { char *mfsrc = mfs_get_home_path(".mfsrc"); + if (mfsrc == NULL) + return (-ENOMEM); int res = stat(mfsrc, stbuf); DEBUG("stat result for %s: %d\n", mfsrc, res); free(mfsrc); @@ -161,6 +163,8 @@ static int mfs_read (const char *path, char *buf, size_t size, off_t offset, (int)size); if (strcmp(path, "/.config") == 0) { char *mfsrc = mfs_get_home_path(".mfsrc"); + if (mfsrc == NULL) + return (-ENOMEM); int fd = open(mfsrc, O_RDONLY); free(mfsrc); lseek(fd, offset, SEEK_CUR); @@ -192,6 +196,8 @@ static int mfs_write(const char *path, const char *buf, size_t size, if (strcmp(path, "/.config") == 0) { char *mfsrc = mfs_get_home_path(".mfsrc"); + if (mfsrc == NULL) + return (-ENOMEM); int fd = open(mfsrc, O_WRONLY); free(mfsrc); lseek(fd, offset, SEEK_CUR); @@ -223,6 +229,8 @@ static int mfs_truncate(const char *path, off_t size) if (strcmp(path, "/.config") == 0) { mfsrc = mfs_get_home_path(".mfsrc"); + if (mfsrc == NULL) + return (-ENOMEM); res = truncate(mfsrc, size); DEBUG("truncated %s with result: %d\n", mfsrc, res) free(mfsrc); @@ -275,6 +283,8 @@ static int mfs_chmod(const char *path, mode_t mode) DEBUG("chmod %s, %d\n", path, (int)mode); if (strcmp(path, "/.config") == 0) { mfsrc = mfs_get_home_path(".mfsrc"); + if (mfsrc == NULL) + return (-ENOMEM); ret = chmod(mfsrc, mode); free(mfsrc); return (ret); @@ -292,6 +302,8 @@ static int mfs_utimens(const char *path, const struct timespec tv[2]) if (strcmp(path, "/.config") == 0) { mfsrc = mfs_get_home_path(".mfsrc"); + if (mfsrc == NULL) + return (-ENOMEM); ret = 0; /* utimes(mfsrc, tval); */ free(mfsrc); return (ret); |