summaryrefslogtreecommitdiff
path: root/trust/save.c
diff options
context:
space:
mode:
authorStef Walter <stef@thewalter.net>2013-07-17 18:08:11 +0200
committerStef Walter <stef@thewalter.net>2013-07-18 13:04:37 +0200
commit9a1fe66f08149596567fedb4e2338ae786a19ab9 (patch)
tree562ee2eedc17f0dd83f62890d3b4d12f02ee5a72 /trust/save.c
parente403f7b33ac35e961c72ed1b6335bbe3084e4642 (diff)
downloadp11-kit-9a1fe66f08149596567fedb4e2338ae786a19ab9.tar.gz
Avoid using the non-thread-safe strerror() function
https://bugzilla.redhat.com/show_bug.cgi?id=985481
Diffstat (limited to 'trust/save.c')
-rw-r--r--trust/save.c47
1 files changed, 16 insertions, 31 deletions
diff --git a/trust/save.c b/trust/save.c
index 0f047fc..a549d93 100644
--- a/trust/save.c
+++ b/trust/save.c
@@ -105,8 +105,7 @@ p11_save_open_file (const char *path,
fd = mkstemp (temp);
if (fd < 0) {
- p11_message ("couldn't create file: %s%s: %s",
- path, extension, strerror (errno));
+ p11_message_err (errno, "couldn't create file: %s%s", path, extension);
free (temp);
return NULL;
}
@@ -148,8 +147,7 @@ p11_save_write (p11_save_file *file,
if (res <= 0) {
if (errno == EAGAIN && errno == EINTR)
continue;
- p11_message ("couldn't write to file: %s: %s",
- file->temp, strerror (errno));
+ p11_message_err (errno, "couldn't write to file: %s", file->temp);
return false;
} else {
written += res;
@@ -179,8 +177,7 @@ on_unique_try_link (void *data,
if (link (file->temp, path) < 0) {
if (errno == EEXIST)
return 0; /* Continue trying other names */
- p11_message ("couldn't complete writing of file: %s: %s",
- path, strerror (errno));
+ p11_message_err (errno, "couldn't complete writing of file: %s", path);
return -1;
}
@@ -198,8 +195,7 @@ on_unique_try_rename (void *data,
if (rename (file->temp, path) < 0) {
if (errno == EEXIST)
return 0; /* Continue trying other names */
- p11_message ("couldn't complete writing of file: %s: %s",
- path, strerror (errno));
+ p11_message ("couldn't complete writing of file: %s", path);
return -1;
}
@@ -230,23 +226,20 @@ p11_save_finish_file (p11_save_file *file,
return_val_if_reached (false);
if (close (file->fd) < 0) {
- p11_message ("couldn't write file: %s: %s",
- file->temp, strerror (errno));
+ p11_message_err (errno, "couldn't write file: %s", file->temp);
ret = false;
#ifdef OS_UNIX
/* Set the mode of the file, readable by everyone, but not writable */
} else if (chmod (file->temp, S_IRUSR | S_IRGRP | S_IROTH) < 0) {
- p11_message ("couldn't set file permissions: %s: %s",
- file->temp, strerror (errno));
+ p11_message_err (errno, "couldn't set file permissions: %s", file->temp);
close (file->fd);
ret = false;
/* Atomically rename the tempfile over the filename */
} else if (file->flags & P11_SAVE_OVERWRITE) {
if (rename (file->temp, path) < 0) {
- p11_message ("couldn't complete writing file: %s: %s",
- path, strerror (errno));
+ p11_message_err (errno, "couldn't complete writing file: %s", path);
ret = false;
} else {
unlink (file->temp);
@@ -264,8 +257,7 @@ p11_save_finish_file (p11_save_file *file,
/* When not overwriting, link will fail if filename exists. */
} else {
if (link (file->temp, path) < 0) {
- p11_message ("couldn't complete writing of file: %s: %s",
- path, strerror (errno));
+ p11_message_err (errno, "couldn't complete writing of file: %s", path);
ret = false;
}
unlink (file->temp);
@@ -284,15 +276,13 @@ p11_save_finish_file (p11_save_file *file,
} else if ((file->flags & P11_SAVE_OVERWRITE) &&
unlink (path) < 0 && errno != ENOENT) {
- p11_message ("couldn't remove original file: %s: %s",
- path, strerror (errno));
+ p11_message_err (errno, "couldn't remove original file: %s", path);
ret = false;
}
if (ret == true &&
rename (file->temp, path) < 0) {
- p11_message ("couldn't complete writing file: %s: %s",
- path, strerror (errno));
+ p11_message_err (errno, "couldn't complete writing file: %s", path);
ret = false;
}
@@ -330,7 +320,7 @@ p11_save_open_directory (const char *path,
#endif
/* Some random error, report it */
if (errno != EEXIST) {
- p11_message ("couldn't create directory: %s: %s", path, strerror (errno));
+ p11_message_err (errno, "couldn't create directory: %s", path);
/* The directory exists and we're not overwriting */
} else if (!(flags & P11_SAVE_OVERWRITE)) {
@@ -346,8 +336,7 @@ p11_save_open_directory (const char *path,
if (stat (path, &sb) >= 0) {
if ((sb.st_mode & S_IRWXU) != S_IRWXU &&
chmod (path, S_IRWXU | sb.st_mode) < 0) {
- p11_message ("couldn't make directory writable: %s: %s",
- path, strerror (errno));
+ p11_message_err (errno, "couldn't make directory writable: %s", path);
return NULL;
}
}
@@ -501,8 +490,7 @@ p11_save_symlink_in (p11_save_dir *dir,
unlink (path);
if (symlink (destination, path) < 0) {
- p11_message ("couldn't create symlink: %s: %s",
- path, strerror (errno));
+ p11_message_err (errno, "couldn't create symlink: %s", path);
ret = false;
} else {
if (!p11_dict_set (dir->cache, name, name))
@@ -534,8 +522,7 @@ cleanup_directory (const char *directory,
/* First we load all the modules */
dir = opendir (directory);
if (!dir) {
- p11_message ("couldn't list directory: %s: %s",
- directory, strerror (errno));
+ p11_message_err (errno, "couldn't list directory: %s", directory);
return false;
}
@@ -575,8 +562,7 @@ cleanup_directory (const char *directory,
p11_dict_iterate (remove, &iter);
while (p11_dict_next (&iter, (void **)&path, NULL)) {
if (unlink (path) < 0 && errno != ENOENT) {
- p11_message ("couldn't remove file: %s: %s",
- path, strerror (errno));
+ p11_message_err (errno, "couldn't remove file: %s", path);
ret = false;
break;
}
@@ -604,8 +590,7 @@ p11_save_finish_directory (p11_save_dir *dir,
/* Try to set the mode of the directory to readable */
if (ret && chmod (dir->path, S_IRUSR | S_IXUSR | S_IRGRP |
S_IXGRP | S_IROTH | S_IXOTH) < 0) {
- p11_message ("couldn't set directory permissions: %s: %s",
- dir->path, strerror (errno));
+ p11_message_err (errno, "couldn't set directory permissions: %s", dir->path);
ret = false;
}
#endif /* OS_UNIX */