aboutsummaryrefslogtreecommitdiff
path: root/atf-c/detail/fs.c
diff options
context:
space:
mode:
Diffstat (limited to 'atf-c/detail/fs.c')
-rw-r--r--atf-c/detail/fs.c34
1 files changed, 12 insertions, 22 deletions
diff --git a/atf-c/detail/fs.c b/atf-c/detail/fs.c
index 5ff7648c3c7e..e090aba99bd2 100644
--- a/atf-c/detail/fs.c
+++ b/atf-c/detail/fs.c
@@ -31,7 +31,6 @@
#include <sys/types.h>
#include <sys/param.h>
-#include <sys/mount.h>
#include <sys/stat.h>
#include <sys/wait.h>
@@ -175,16 +174,12 @@ atf_error_t
copy_contents(const atf_fs_path_t *p, char **buf)
{
atf_error_t err;
- char *str;
- str = (char *)malloc(atf_dynstr_length(&p->m_data) + 1);
- if (str == NULL)
+ *buf = strdup(atf_fs_path_cstring(p));
+ if (*buf == NULL)
err = atf_no_memory_error();
- else {
- strcpy(str, atf_dynstr_cstring(&p->m_data));
- *buf = str;
+ else
err = atf_no_error();
- }
return err;
}
@@ -286,6 +281,7 @@ normalize_ap(atf_dynstr_t *d, const char *p, va_list ap)
else {
err = normalize(d, str);
free(str);
+ str = NULL;
}
out:
@@ -795,10 +791,8 @@ atf_fs_mkdtemp(atf_fs_path_t *p)
atf_error_t err;
char *buf;
- if (!check_umask(S_IRWXU, S_IRWXU)) {
- err = invalid_umask_error(p, atf_fs_stat_dir_type, current_umask());
- goto out;
- }
+ if (!check_umask(S_IRWXU, S_IRWXU))
+ return invalid_umask_error(p, atf_fs_stat_dir_type, current_umask());
err = copy_contents(p, &buf);
if (atf_is_error(err))
@@ -806,14 +800,13 @@ atf_fs_mkdtemp(atf_fs_path_t *p)
err = do_mkdtemp(buf);
if (atf_is_error(err))
- goto out_buf;
+ goto out;
replace_contents(p, buf);
INV(!atf_is_error(err));
-out_buf:
- free(buf);
out:
+ free(buf);
return err;
}
@@ -824,10 +817,8 @@ atf_fs_mkstemp(atf_fs_path_t *p, int *fdout)
char *buf;
int fd;
- if (!check_umask(S_IRWXU, S_IRWXU)) {
- err = invalid_umask_error(p, atf_fs_stat_reg_type, current_umask());
- goto out;
- }
+ if (!check_umask(S_IRWXU, S_IRWXU))
+ return invalid_umask_error(p, atf_fs_stat_reg_type, current_umask());
err = copy_contents(p, &buf);
if (atf_is_error(err))
@@ -835,15 +826,14 @@ atf_fs_mkstemp(atf_fs_path_t *p, int *fdout)
err = do_mkstemp(buf, &fd);
if (atf_is_error(err))
- goto out_buf;
+ goto out;
replace_contents(p, buf);
*fdout = fd;
INV(!atf_is_error(err));
-out_buf:
- free(buf);
out:
+ free(buf);
return err;
}