From 9fbe53847ce00954c8ae0a21a0d0aa7e04493019 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Fri, 14 Oct 2011 17:20:14 +0200 Subject: 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 --- src/sbus/sssd_dbus_server.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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))); -- cgit