44 * darcy@druid.net
55 * http://www.druid.net/darcy/
66 *
7- * $PostgreSQL: pgsql/contrib/chkpass/chkpass.c,v 1.17 2006/07/14 05:28:27 tgl Exp $
7+ * $PostgreSQL: pgsql/contrib/chkpass/chkpass.c,v 1.18 2007/02/07 00:52:35 petere Exp $
88 * best viewed with tabs set to 4
99 */
1010
@@ -76,8 +76,7 @@ chkpass_in(PG_FUNCTION_ARGS)
7676 if (* str == ':' )
7777 {
7878 result = (chkpass * ) palloc (sizeof (chkpass ));
79- strncpy (result -> password , str + 1 , 13 );
80- result -> password [13 ] = 0 ;
79+ strlcpy (result -> password , str + 1 , 13 + 1 );
8180 PG_RETURN_POINTER (result );
8281 }
8382
@@ -150,8 +149,7 @@ chkpass_eq(PG_FUNCTION_ARGS)
150149
151150 if (a2 -> vl_len < 12 )
152151 sz = a2 -> vl_len - 4 ;
153- strncpy (str , a2 -> vl_dat , sz );
154- str [sz ] = 0 ;
152+ strlcpy (str , a2 -> vl_dat , sz + 1 );
155153 PG_RETURN_BOOL (strcmp (a1 -> password , crypt (str , a1 -> password )) == 0 );
156154}
157155
@@ -166,7 +164,6 @@ chkpass_ne(PG_FUNCTION_ARGS)
166164
167165 if (a2 -> vl_len < 12 )
168166 sz = a2 -> vl_len - 4 ;
169- strncpy (str , a2 -> vl_dat , sz );
170- str [sz ] = 0 ;
167+ strlcpy (str , a2 -> vl_dat , sz + 1 );
171168 PG_RETURN_BOOL (strcmp (a1 -> password , crypt (str , a1 -> password )) != 0 );
172169}
0 commit comments