diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2011-10-14 17:20:14 +0200 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2011-10-14 14:17:02 -0400 |
commit | 9fbe53847ce00954c8ae0a21a0d0aa7e04493019 (patch) | |
tree | 2965e2df46b05acb1b8e120dd0cb166cb71a9529 /src | |
parent | d7cecebe2bda44184cdc18ee1cfce1c00be491e1 (diff) | |
download | sssd-9fbe53847ce00954c8ae0a21a0d0aa7e04493019.tar.gz sssd-9fbe53847ce00954c8ae0a21a0d0aa7e04493019.tar.xz sssd-9fbe53847ce00954c8ae0a21a0d0aa7e04493019.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))); |