Fix libnss-tacplus compilation
Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
This commit is contained in:
parent
471fb86114
commit
ae59d9b8a8
@ -0,0 +1,32 @@
|
||||
Fix ternary condition checks
|
||||
|
||||
From: Saikrishna Arcot <sarcot@microsoft.com>
|
||||
|
||||
Because of order of operations, the address addition evaluates before
|
||||
the ternary condition check. Because of that, unexpected results would
|
||||
occur, including a possible segfault.
|
||||
---
|
||||
nss_tacplus.c | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/nss_tacplus.c b/nss_tacplus.c
|
||||
index 560cd22..d954f03 100644
|
||||
--- a/nss_tacplus.c
|
||||
+++ b/nss_tacplus.c
|
||||
@@ -350,11 +350,11 @@ pwcopy(char *buf, size_t len, struct passwd *srcpw, struct passwd *destpw,
|
||||
if(!usename)
|
||||
usename = srcpw->pw_name;
|
||||
|
||||
- needlen = usename ? strlen(usename) + 1 : 1 +
|
||||
- srcpw->pw_dir ? strlen(srcpw->pw_dir) + 1 : 1 +
|
||||
- srcpw->pw_gecos ? strlen(srcpw->pw_gecos) + 1 : 1 +
|
||||
- srcpw->pw_shell ? strlen(srcpw->pw_shell) + 1 : 1 +
|
||||
- srcpw->pw_passwd ? strlen(srcpw->pw_passwd) + 1 : 1;
|
||||
+ needlen = (usename ? strlen(usename) + 1 : 1) +
|
||||
+ (srcpw->pw_dir ? strlen(srcpw->pw_dir) + 1 : 1) +
|
||||
+ (srcpw->pw_gecos ? strlen(srcpw->pw_gecos) + 1 : 1) +
|
||||
+ (srcpw->pw_shell ? strlen(srcpw->pw_shell) + 1 : 1) +
|
||||
+ (srcpw->pw_passwd ? strlen(srcpw->pw_passwd) + 1 : 1);
|
||||
if(needlen > len) {
|
||||
if(debug)
|
||||
syslog(LOG_DEBUG, "%s provided password buffer too small (%ld<%ld)",
|
@ -9,3 +9,4 @@
|
||||
0009-fix-compile-error-strncpy.patch
|
||||
0010-Send-remote-address-in-TACACS-authorization-message.patch
|
||||
0011-Replace-popen-shell-execution-with-safer-execle.patch
|
||||
0012-fix-compile-error-conditionals.patch
|
||||
|
Loading…
Reference in New Issue
Block a user