diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2011-10-14 17:20:14 +0200 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2011-10-26 10:29:40 -0400 |
commit | 9264c2c7c7e4b425cef084c13187baf45509089e (patch) | |
tree | 993f2f22ee03eea8f4ef51ab6b4c28a57734a458 /src | |
parent | 4a5859de3845de6276c6a5e13f4e920b1de3f327 (diff) | |
download | sssd-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
Diffstat (limited to 'src')
-rw-r--r-- | src/sbus/sssd_dbus_server.c | 4 |
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))); |