4
4
* darcy@druid.net
5
5
* http://www.druid.net/darcy/
6
6
*
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 $
8
8
* best viewed with tabs set to 4
9
9
*/
10
10
@@ -76,8 +76,7 @@ chkpass_in(PG_FUNCTION_ARGS)
76
76
if (* str == ':' )
77
77
{
78
78
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 );
81
80
PG_RETURN_POINTER (result );
82
81
}
83
82
@@ -150,8 +149,7 @@ chkpass_eq(PG_FUNCTION_ARGS)
150
149
151
150
if (a2 -> vl_len < 12 )
152
151
sz = a2 -> vl_len - 4 ;
153
- strncpy (str , a2 -> vl_dat , sz );
154
- str [sz ] = 0 ;
152
+ strlcpy (str , a2 -> vl_dat , sz + 1 );
155
153
PG_RETURN_BOOL (strcmp (a1 -> password , crypt (str , a1 -> password )) == 0 );
156
154
}
157
155
@@ -166,7 +164,6 @@ chkpass_ne(PG_FUNCTION_ARGS)
166
164
167
165
if (a2 -> vl_len < 12 )
168
166
sz = a2 -> vl_len - 4 ;
169
- strncpy (str , a2 -> vl_dat , sz );
170
- str [sz ] = 0 ;
167
+ strlcpy (str , a2 -> vl_dat , sz + 1 );
171
168
PG_RETURN_BOOL (strcmp (a1 -> password , crypt (str , a1 -> password )) != 0 );
172
169
}
0 commit comments