[newlib-cygwin] Fix comparison between two character arrays

Corinna Vinschen corinna@sourceware.org
Mon Jul 30 07:37:00 GMT 2018


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=613a7f90361533fd5310ee836635a1e0864dfa71

commit 613a7f90361533fd5310ee836635a1e0864dfa71
Author: Jordi Sanfeliu <jordi@fibranet.cat>
Date:   Fri Jul 27 11:02:55 2018 +0200

    Fix comparison between two character arrays
    
    Hello,
    
    The member 'id' in the 'utmp' struct is not a numeric but a character array,
    hence the strncmp() function is needed to compare two members.

Diff:
---
 newlib/libc/unix/getut.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/newlib/libc/unix/getut.c b/newlib/libc/unix/getut.c
index 89ed739..71a8c8f 100644
--- a/newlib/libc/unix/getut.c
+++ b/newlib/libc/unix/getut.c
@@ -63,7 +63,7 @@ getutid (struct utmp *id)
 	case LOGIN_PROCESS:
 	case USER_PROCESS:
 	case DEAD_PROCESS:
-	  if (id->ut_id == utmp_data.ut_id)
+	  if (!strncmp (id->ut_id, utmp_data.ut_id, sizeof (utmp_data.ut_id)))
 	    return &utmp_data;
 	  break;
 	default:



More information about the Newlib-cvs mailing list