summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2011-10-14 17:20:14 +0200
committerStephen Gallagher <sgallagh@redhat.com>2011-10-26 10:29:40 -0400
commit9264c2c7c7e4b425cef084c13187baf45509089e (patch)
tree993f2f22ee03eea8f4ef51ab6b4c28a57734a458
parent4a5859de3845de6276c6a5e13f4e920b1de3f327 (diff)
downloadsssd-9264c2c7c7e4b425cef084c13187baf45509089e.tar.gz
sssd-9264c2c7c7e4b425cef084c13187baf45509089e.tar.xz
sssd-9264c2c7c7e4b425cef084c13187baf45509089e.zip
Fix Coverity issues introduced by DBUS socket patch
Fix off-by-one error in remove_socket_symlink() https://fedorahosted.org/sssd/ticket/1043 Report on errno, not return code in create_socket_symlink https://fedorahosted.org/sssd/ticket/1044
-rw-r--r--src/sbus/sssd_dbus_server.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/sbus/sssd_dbus_server.c b/src/sbus/sssd_dbus_server.c
index 759eb69f7..57fa0e4dd 100644
--- a/src/sbus/sssd_dbus_server.c
+++ b/src/sbus/sssd_dbus_server.c
@@ -103,8 +103,10 @@ create_socket_symlink(const char *filename, const char *symlink_filename)
ret = symlink(filename, symlink_filename);
if (ret != 0 && errno == EEXIST) {
/* Perhaps cruft after a previous server? */
+ errno = 0;
ret = unlink(symlink_filename);
if (ret != 0) {
+ ret = errno;
DEBUG(1, ("Cannot remove old symlink: [%d][%s].\n",
ret, strerror(ret)));
return EIO;
@@ -132,7 +134,7 @@ remove_socket_symlink(const char *symlink_name)
ssize_t numread = 0;
errno = 0;
- numread = readlink(symlink_name, target, PATH_MAX);
+ numread = readlink(symlink_name, target, PATH_MAX-1);
if (numread < 0) {
ret = errno;
DEBUG(2, ("readlink failed [%d]: %s\n", ret, strerror(ret)));