1.1 --- a/sasl/sasl.patch Tue Aug 28 18:52:20 2012 +0200 1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 1.3 @@ -1,600 +0,0 @@ 1.4 -Index: configure 1.5 ---- configure.orig 2006-05-18 21:30:13 +0200 1.6 -+++ configure 2008-12-25 18:48:51 +0100 1.7 -@@ -3944,9 +3944,6 @@ 1.8 - 1.9 - fi 1.10 - 1.11 --if test "$ac_cv_c_compiler_gnu" = yes; then 1.12 -- CFLAGS="-Wall -W ${CFLAGS}" 1.13 --fi 1.14 - 1.15 - 1.16 - # Check whether --with-purecov or --without-purecov was given. 1.17 -@@ -5125,7 +5122,7 @@ 1.18 - fi 1.19 - 1.20 - saved_LIBS=$LIBS 1.21 -- for dbname in db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db40 db4 db-3.3 db3.3 db33 db-3.2 db3.2 db32 db-3.1 db3.1 db31 db-3 db30 db3 db 1.22 -+ for dbname in db 1.23 - do 1.24 - LIBS="$saved_LIBS -l$dbname" 1.25 - cat >conftest.$ac_ext <<_ACEOF 1.26 -@@ -5205,6 +5202,54 @@ 1.27 - fi 1.28 - rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext 1.29 - fi 1.30 -+ if test "$dblib" = "no"; then 1.31 -+ cat >conftest.$ac_ext <<_ACEOF 1.32 -+/* confdefs.h. */ 1.33 -+_ACEOF 1.34 -+cat confdefs.h >>conftest.$ac_ext 1.35 -+cat >>conftest.$ac_ext <<_ACEOF 1.36 -+/* end confdefs.h. */ 1.37 -+#include <db.h> 1.38 -+int 1.39 -+main () 1.40 -+{ 1.41 -+dbm_open(NULL, 0, 0, 0, NULL, NULL, NULL); 1.42 -+ ; 1.43 -+ return 0; 1.44 -+} 1.45 -+_ACEOF 1.46 -+rm -f conftest.$ac_objext conftest$ac_exeext 1.47 -+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 1.48 -+ (eval $ac_link) 2>conftest.er1 1.49 -+ ac_status=$? 1.50 -+ grep -v '^ *+' conftest.er1 >conftest.err 1.51 -+ rm -f conftest.er1 1.52 -+ cat conftest.err >&5 1.53 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 1.54 -+ (exit $ac_status); } && 1.55 -+ { ac_try='test -z "$ac_c_werror_flag" 1.56 -+ || test ! -s conftest.err' 1.57 -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 1.58 -+ (eval $ac_try) 2>&5 1.59 -+ ac_status=$? 1.60 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 1.61 -+ (exit $ac_status); }; } && 1.62 -+ { ac_try='test -s conftest$ac_exeext' 1.63 -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 1.64 -+ (eval $ac_try) 2>&5 1.65 -+ ac_status=$? 1.66 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 1.67 -+ (exit $ac_status); }; }; then 1.68 -+ BDB_LIBADD="$BDB_LIBADD -ldb"; dblib="berkeley"; dbname=db 1.69 -+else 1.70 -+ echo "$as_me: failed program was:" >&5 1.71 -+sed 's/^/| /' conftest.$ac_ext >&5 1.72 -+ 1.73 -+dblib="no" 1.74 -+fi 1.75 -+rm -f conftest.err conftest.$ac_objext \ 1.76 -+ conftest$ac_exeext conftest.$ac_ext 1.77 -+ fi 1.78 - LIBS=$saved_LIBS 1.79 - 1.80 - LDFLAGS=$BDB_SAVE_LDFLAGS 1.81 -@@ -5882,7 +5927,7 @@ 1.82 - fi 1.83 - 1.84 - saved_LIBS=$LIBS 1.85 -- for dbname in db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db40 db4 db-3.3 db3.3 db33 db-3.2 db3.2 db32 db-3.1 db3.1 db31 db-3 db30 db3 db 1.86 -+ for dbname in db 1.87 - do 1.88 - LIBS="$saved_LIBS -l$dbname" 1.89 - cat >conftest.$ac_ext <<_ACEOF 1.90 -@@ -5962,6 +6007,54 @@ 1.91 - fi 1.92 - rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext 1.93 - fi 1.94 -+ if test "$dblib" = "no"; then 1.95 -+ cat >conftest.$ac_ext <<_ACEOF 1.96 -+/* confdefs.h. */ 1.97 -+_ACEOF 1.98 -+cat confdefs.h >>conftest.$ac_ext 1.99 -+cat >>conftest.$ac_ext <<_ACEOF 1.100 -+/* end confdefs.h. */ 1.101 -+#include <db.h> 1.102 -+int 1.103 -+main () 1.104 -+{ 1.105 -+dbm_open(NULL, 0, 0, 0, NULL, NULL, NULL); 1.106 -+ ; 1.107 -+ return 0; 1.108 -+} 1.109 -+_ACEOF 1.110 -+rm -f conftest.$ac_objext conftest$ac_exeext 1.111 -+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 1.112 -+ (eval $ac_link) 2>conftest.er1 1.113 -+ ac_status=$? 1.114 -+ grep -v '^ *+' conftest.er1 >conftest.err 1.115 -+ rm -f conftest.er1 1.116 -+ cat conftest.err >&5 1.117 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 1.118 -+ (exit $ac_status); } && 1.119 -+ { ac_try='test -z "$ac_c_werror_flag" 1.120 -+ || test ! -s conftest.err' 1.121 -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 1.122 -+ (eval $ac_try) 2>&5 1.123 -+ ac_status=$? 1.124 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 1.125 -+ (exit $ac_status); }; } && 1.126 -+ { ac_try='test -s conftest$ac_exeext' 1.127 -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 1.128 -+ (eval $ac_try) 2>&5 1.129 -+ ac_status=$? 1.130 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 1.131 -+ (exit $ac_status); }; }; then 1.132 -+ BDB_LIBADD="$BDB_LIBADD -ldb"; dblib="berkeley"; dbname=db 1.133 -+else 1.134 -+ echo "$as_me: failed program was:" >&5 1.135 -+sed 's/^/| /' conftest.$ac_ext >&5 1.136 -+ 1.137 -+dblib="no" 1.138 -+fi 1.139 -+rm -f conftest.err conftest.$ac_objext \ 1.140 -+ conftest$ac_exeext conftest.$ac_ext 1.141 -+ fi 1.142 - LIBS=$saved_LIBS 1.143 - 1.144 - LDFLAGS=$BDB_SAVE_LDFLAGS 1.145 -@@ -12005,20 +12098,20 @@ 1.146 - fi 1.147 - 1.148 - LIB_SQLITE_DIR=$LIB_SQLITE 1.149 -- LIB_SQLITE="$LIB_SQLITE -lsqlite" 1.150 -+ LIB_SQLITE="$LIB_SQLITE -lsqlite3" 1.151 - 1.152 - if test -d ${with_sqlite}/include; then 1.153 - CPPFLAGS="${CPPFLAGS} -I${with_sqlite}/include" 1.154 - else 1.155 - CPPFLAGS="${CPPFLAGS} -I${with_sqlite}" 1.156 - fi 1.157 -- echo "$as_me:$LINENO: checking for sqlite_open in -lsqlite" >&5 1.158 --echo $ECHO_N "checking for sqlite_open in -lsqlite... $ECHO_C" >&6 1.159 -+ echo "$as_me:$LINENO: checking for sqlite3_open in -lsqlite3" >&5 1.160 -+echo $ECHO_N "checking for sqlite3_open in -lsqlite3... $ECHO_C" >&6 1.161 - if test "${ac_cv_lib_sqlite_sqlite_open+set}" = set; then 1.162 - echo $ECHO_N "(cached) $ECHO_C" >&6 1.163 - else 1.164 - ac_check_lib_save_LIBS=$LIBS 1.165 --LIBS="-lsqlite $LIB_SQLITE_DIR $LIBS" 1.166 -+LIBS="-lsqlite3 $LIB_SQLITE_DIR $LIBS" 1.167 - cat >conftest.$ac_ext <<_ACEOF 1.168 - #line $LINENO "configure" 1.169 - /* confdefs.h. */ 1.170 -@@ -12033,11 +12126,11 @@ 1.171 - #endif 1.172 - /* We use char because int might match the return type of a gcc2 1.173 - builtin and then its argument prototype would still apply. */ 1.174 --char sqlite_open (); 1.175 -+char sqlite3_open (); 1.176 - int 1.177 - main () 1.178 - { 1.179 --sqlite_open (); 1.180 -+sqlite3_open (); 1.181 - ; 1.182 - return 0; 1.183 - } 1.184 -Index: lib/saslint.h 1.185 ---- lib/saslint.h.orig 2006-04-18 22:25:45 +0200 1.186 -+++ lib/saslint.h 2008-12-25 18:48:51 +0100 1.187 -@@ -109,8 +109,6 @@ 1.188 - const char *appname; 1.189 - } sasl_global_callbacks_t; 1.190 - 1.191 --extern sasl_global_callbacks_t global_callbacks; 1.192 -- 1.193 - typedef struct _sasl_external_properties 1.194 - { 1.195 - sasl_ssf_t ssf; 1.196 -Index: lib/server.c 1.197 ---- lib/server.c.orig 2006-05-17 18:46:13 +0200 1.198 -+++ lib/server.c 2008-12-25 18:48:51 +0100 1.199 -@@ -95,7 +95,7 @@ 1.200 - 1.201 - static mech_list_t *mechlist = NULL; /* global var which holds the list */ 1.202 - 1.203 --sasl_global_callbacks_t global_callbacks; 1.204 -+static sasl_global_callbacks_t global_callbacks; 1.205 - 1.206 - /* set the password for a user 1.207 - * conn -- SASL connection 1.208 -@@ -477,16 +477,8 @@ 1.209 - return SASL_CONTINUE; 1.210 - } 1.211 - 1.212 -- /* get the path to the config file */ 1.213 -- getconfpath_cb = _sasl_find_getconfpath_callback( global_callbacks.callbacks ); 1.214 -- if (getconfpath_cb == NULL) return SASL_BADPARAM; 1.215 -- 1.216 -- /* getconfpath_cb->proc MUST be a sasl_getconfpath_t; if only C had a type 1.217 -- system */ 1.218 -- result = ((sasl_getconfpath_t *)(getconfpath_cb->proc))(getconfpath_cb->context, 1.219 -- &path_to_config); 1.220 -- if (result != SASL_OK) goto done; 1.221 -- if (path_to_config == NULL) path_to_config = ""; 1.222 -+ result = SASL_OK; 1.223 -+ path_to_config = "@l_sysconfdir@"; 1.224 - 1.225 - next = path_to_config; 1.226 - 1.227 -Index: plugins/sql.c 1.228 ---- plugins/sql.c.orig 2006-04-07 15:42:16 +0200 1.229 -+++ plugins/sql.c 2008-12-25 21:57:47 +0100 1.230 -@@ -150,9 +150,15 @@ 1.231 - return -1; 1.232 - } 1.233 - if (value) { 1.234 -- strncpy(value, row[0], size-2); 1.235 -- value[size-1] = '\0'; 1.236 -- if (value_len) *value_len = strlen(value); 1.237 -+ unsigned long *col_lens; 1.238 -+ size_t col_len; 1.239 -+ col_lens = mysql_fetch_lengths(result); 1.240 -+ col_len = (size_t)col_lens[0]; 1.241 -+ if (col_len > size - 1); 1.242 -+ col_len = size - 1; 1.243 -+ memcpy(value, row[0], col_len); 1.244 -+ value[col_len] = '\0'; 1.245 -+ if (value_len) *value_len = col_len; 1.246 - } 1.247 - 1.248 - /* free result */ 1.249 -@@ -277,7 +283,7 @@ 1.250 - ExecStatusType status; 1.251 - 1.252 - /* run the query */ 1.253 -- result = PQexec(conn, cmd); 1.254 -+ result = PQexecParams(conn, cmd, 0, NULL, NULL, NULL, NULL, 1); 1.255 - 1.256 - /* check the status */ 1.257 - status = PQresultStatus(result); 1.258 -@@ -298,6 +304,7 @@ 1.259 - row_count = PQntuples(result); 1.260 - if (!row_count) { 1.261 - /* umm nothing found */ 1.262 -+ utils->log(NULL, SASL_LOG_DEBUG, "sql plugin: no result found for query %s", cmd); 1.263 - utils->log(NULL, SASL_LOG_NOTE, "sql plugin: no result found"); 1.264 - PQclear(result); 1.265 - return -1; 1.266 -@@ -310,9 +317,26 @@ 1.267 - /* now get the result set value and value_len */ 1.268 - /* we only fetch one because we don't care about the rest */ 1.269 - if (value) { 1.270 -- strncpy(value, PQgetvalue(result,0,0), size-2); 1.271 -- value[size-1] = '\0'; 1.272 -- if (value_len) *value_len = strlen(value); 1.273 -+ if (PQgetisnull(result, 0, 0)) { 1.274 -+ size_t col_len; 1.275 -+ col_len = strlen(SQL_NULL_VALUE); 1.276 -+ if (col_len > size - 1) 1.277 -+ col_len = size - 1; 1.278 -+ memcpy(value, SQL_NULL_VALUE, col_len); 1.279 -+ value[col_len] = '\0'; 1.280 -+ if (value_len) 1.281 -+ *value_len = col_len; 1.282 -+ } 1.283 -+ else { 1.284 -+ size_t col_len; 1.285 -+ col_len = (size_t)PQgetlength(result, 0, 0); 1.286 -+ if (col_len > size - 1); 1.287 -+ col_len = size - 1; 1.288 -+ memcpy(value, PQgetvalue(result, 0, 0), col_len); 1.289 -+ value[col_len] = '\0'; 1.290 -+ if (value_len) 1.291 -+ *value_len = col_len; 1.292 -+ } 1.293 - } 1.294 - 1.295 - /* free result */ 1.296 -@@ -342,7 +366,7 @@ 1.297 - #endif /* HAVE_PGSQL */ 1.298 - 1.299 - #ifdef HAVE_SQLITE 1.300 --#include <sqlite.h> 1.301 -+#include <sqlite3.h> 1.302 - 1.303 - static void *_sqlite_open(char *host __attribute__((unused)), 1.304 - char *port __attribute__((unused)), 1.305 -@@ -352,21 +376,23 @@ 1.306 - const char *database, const sasl_utils_t *utils) 1.307 - { 1.308 - int rc; 1.309 -- sqlite *db; 1.310 -+ sqlite3 *db; 1.311 - char *zErrMsg = NULL; 1.312 - 1.313 -- db = sqlite_open(database, 0, &zErrMsg); 1.314 -- if (db == NULL) { 1.315 -+ rc = sqlite3_open(database, &db); 1.316 -+ if (rc != SQLITE_OK) { 1.317 -+ zErrMsg = (char *)sqlite3_errmsg(db); 1.318 - utils->log(NULL, SASL_LOG_ERR, "sql plugin: %s", zErrMsg); 1.319 -- sqlite_freemem (zErrMsg); 1.320 -+ sqlite3_free (zErrMsg); 1.321 -+ sqlite3_close (db); 1.322 - return NULL; 1.323 - } 1.324 - 1.325 -- rc = sqlite_exec(db, "PRAGMA empty_result_callbacks = ON", NULL, NULL, &zErrMsg); 1.326 -+ rc = sqlite3_exec(db, "PRAGMA empty_result_callbacks = ON", NULL, NULL, &zErrMsg); 1.327 - if (rc != SQLITE_OK) { 1.328 - utils->log(NULL, SASL_LOG_ERR, "sql plugin: %s", zErrMsg); 1.329 -- sqlite_freemem (zErrMsg); 1.330 -- sqlite_close(db); 1.331 -+ sqlite3_free (zErrMsg); 1.332 -+ sqlite3_close(db); 1.333 - return NULL; 1.334 - } 1.335 - 1.336 -@@ -388,62 +414,67 @@ 1.337 - return 0; 1.338 - } 1.339 - 1.340 --static int sqlite_my_callback(void *pArg, int argc __attribute__((unused)), 1.341 -- char **argv, 1.342 -- char **columnNames __attribute__((unused))) 1.343 --{ 1.344 -- char **result = (char**)pArg; 1.345 -- 1.346 -- if (argv == NULL) { 1.347 -- *result = NULL; /* no record */ 1.348 -- } else if (argv[0] == NULL) { 1.349 -- *result = strdup(SQL_NULL_VALUE); /* NULL IS SQL_NULL_VALUE */ 1.350 -- } else { 1.351 -- *result = strdup(argv[0]); 1.352 -- } 1.353 -- 1.354 -- return /*ABORT*/1; 1.355 --} 1.356 -- 1.357 - static int _sqlite_exec(void *db, const char *cmd, char *value, size_t size, 1.358 - size_t *value_len, const sasl_utils_t *utils) 1.359 - { 1.360 - int rc; 1.361 -- char *result = NULL; 1.362 -- char *zErrMsg = NULL; 1.363 -+ sqlite3_stmt *stmt; 1.364 -+ const char *todo; 1.365 -+ size_t len; 1.366 - 1.367 -- rc = sqlite_exec((sqlite*)db, cmd, sqlite_my_callback, (void*)&result, &zErrMsg); 1.368 -- if (rc != SQLITE_OK && rc != SQLITE_ABORT) { 1.369 -- utils->log(NULL, SASL_LOG_DEBUG, "sql plugin: %s ", zErrMsg); 1.370 -- sqlite_freemem (zErrMsg); 1.371 -+ rc = sqlite3_prepare((sqlite3*)db, cmd, (int)strlen(cmd), &stmt, &todo); 1.372 -+ if (rc != SQLITE_OK) { 1.373 -+ utils->log(NULL, SASL_LOG_DEBUG, "sql plugin error: %s", sqlite3_errmsg((sqlite3*)db)); 1.374 - return -1; 1.375 - } 1.376 -- 1.377 -- if (rc == SQLITE_OK) { 1.378 -+ rc = sqlite3_step(stmt); 1.379 -+ if (rc != SQLITE_ROW && rc != SQLITE_DONE) { 1.380 -+ utils->log(NULL, SASL_LOG_DEBUG, "sql plugin error: %s", sqlite3_errmsg((sqlite3*)db)); 1.381 -+ sqlite3_finalize(stmt); 1.382 -+ return -1; 1.383 -+ } 1.384 -+ if (sqlite3_column_count(stmt) == 0) { 1.385 - /* no results (BEGIN, COMMIT, DELETE, INSERT, UPDATE) */ 1.386 -+ sqlite3_finalize(stmt); 1.387 - return 0; 1.388 - } 1.389 -- 1.390 -- if (result == NULL) { 1.391 -+ if (rc == SQLITE_DONE) { 1.392 - /* umm nothing found */ 1.393 -+ utils->log(NULL, SASL_LOG_DEBUG, "sql plugin: no result found for query %s", cmd); 1.394 - utils->log(NULL, SASL_LOG_NOTE, "sql plugin: no result found"); 1.395 -+ sqlite3_finalize(stmt); 1.396 - return -1; 1.397 - } 1.398 -- 1.399 -- /* XXX: Duplication cannot be found by this method. */ 1.400 -- 1.401 -- /* now get the result set value and value_len */ 1.402 -- /* we only fetch one because we don't care about the rest */ 1.403 -- if (value) { 1.404 -- strncpy(value, result, size - 2); 1.405 -- value[size - 1] = '\0'; 1.406 -- if (value_len) { 1.407 -- *value_len = strlen(value); 1.408 -- } 1.409 -+ rc = sqlite3_column_type(stmt, 0); 1.410 -+ switch (rc) { 1.411 -+ case SQLITE_NULL: { 1.412 -+ len = strlen(SQL_NULL_VALUE); 1.413 -+ if (len > size - 1) 1.414 -+ len = size - 1; 1.415 -+ memcpy(value, SQL_NULL_VALUE, len); 1.416 -+ value[len] = '\0'; 1.417 -+ if (value_len) 1.418 -+ *value_len = len; 1.419 -+ break; 1.420 -+ } 1.421 -+ default: { 1.422 -+ const void *blob = sqlite3_column_blob(stmt, 0); 1.423 -+ len = (size_t)sqlite3_column_bytes(stmt, 0); 1.424 -+ if (len > size - 1) 1.425 -+ len = size - 1; 1.426 -+ memcpy(value, blob, len); 1.427 -+ value[len] = '\0'; 1.428 -+ if (value_len) 1.429 -+ *value_len = len; 1.430 -+ break; 1.431 -+ } 1.432 - } 1.433 -- 1.434 -- /* free result */ 1.435 -- free(result); 1.436 -+ rc = sqlite3_step(stmt); 1.437 -+ if (rc != SQLITE_DONE) { 1.438 -+ utils->log(NULL, SASL_LOG_WARN, 1.439 -+ "sql plugin: found duplicate row for query %s", cmd); 1.440 -+ } 1.441 -+ sqlite3_finalize(stmt); 1.442 - return 0; 1.443 - } 1.444 - 1.445 -@@ -464,7 +495,7 @@ 1.446 - 1.447 - static void _sqlite_close(void *db) 1.448 - { 1.449 -- sqlite_close((sqlite*)db); 1.450 -+ sqlite3_close((sqlite3 *)db); 1.451 - } 1.452 - #endif /* HAVE_SQLITE */ 1.453 - 1.454 -@@ -771,7 +802,7 @@ 1.455 - settings = (sql_settings_t *) glob_context; 1.456 - 1.457 - sparams->utils->log(NULL, SASL_LOG_DEBUG, 1.458 -- "sql plugin Parse the username %s\n", user); 1.459 -+ "sql plugin parse the username %s\n", user); 1.460 - 1.461 - user_buf = sparams->utils->malloc(ulen + 1); 1.462 - if (!user_buf) goto done; 1.463 -@@ -849,7 +880,7 @@ 1.464 - } 1.465 - 1.466 - sparams->utils->log(NULL, SASL_LOG_DEBUG, 1.467 -- "sql plugin create statement from %s %s %s\n", 1.468 -+ "sql plugin create statement from name=%s user=%s realm=%s\n", 1.469 - realname, escap_userid, escap_realm); 1.470 - 1.471 - /* create a statement that we will use */ 1.472 -@@ -864,9 +895,15 @@ 1.473 - /* run the query */ 1.474 - if (!settings->sql_engine->sql_exec(conn, query, value, sizeof(value), 1.475 - &value_len, sparams->utils)) { 1.476 -+ sparams->utils->log(NULL, SASL_LOG_DEBUG, 1.477 -+ "sql plugin query successful\n"); 1.478 - sparams->utils->prop_set(sparams->propctx, cur->name, 1.479 - value, value_len); 1.480 - } 1.481 -+ else { 1.482 -+ sparams->utils->log(NULL, SASL_LOG_DEBUG, 1.483 -+ "sql plugin query failed\n"); 1.484 -+ } 1.485 - 1.486 - sparams->utils->free(query); 1.487 - } 1.488 -Index: sample/client.c 1.489 ---- sample/client.c.orig 2004-03-09 18:35:32 +0100 1.490 -+++ sample/client.c 2008-12-25 18:48:51 +0100 1.491 -@@ -133,13 +133,11 @@ 1.492 - return SASL_OK; 1.493 - } 1.494 - 1.495 --#ifndef HAVE_GETPASSPHRASE 1.496 - static char * 1.497 --getpassphrase(const char *prompt) 1.498 -+my_getpassphrase(const char *prompt) 1.499 - { 1.500 - return getpass(prompt); 1.501 - } 1.502 --#endif /* ! HAVE_GETPASSPHRASE */ 1.503 - 1.504 - static int 1.505 - getsecret(sasl_conn_t *conn, 1.506 -@@ -155,7 +153,7 @@ 1.507 - if (! conn || ! psecret || id != SASL_CB_PASS) 1.508 - return SASL_BADPARAM; 1.509 - 1.510 -- password = getpassphrase("Password: "); 1.511 -+ password = my_getpassphrase("Password: "); 1.512 - if (! password) 1.513 - return SASL_FAIL; 1.514 - 1.515 -Index: sample/sample-client.c 1.516 ---- sample/sample-client.c.orig 2004-10-26 13:14:33 +0200 1.517 -+++ sample/sample-client.c 2008-12-25 18:48:51 +0100 1.518 -@@ -244,13 +244,11 @@ 1.519 - return SASL_OK; 1.520 - } 1.521 - 1.522 --#ifndef HAVE_GETPASSPHRASE 1.523 - static char * 1.524 --getpassphrase(const char *prompt) 1.525 -+my_getpassphrase(const char *prompt) 1.526 - { 1.527 - return getpass(prompt); 1.528 - } 1.529 --#endif /* ! HAVE_GETPASSPHRASE */ 1.530 - 1.531 - static int 1.532 - getsecret(sasl_conn_t *conn, 1.533 -@@ -264,7 +262,7 @@ 1.534 - if (! conn || ! psecret || id != SASL_CB_PASS) 1.535 - return SASL_BADPARAM; 1.536 - 1.537 -- password = getpassphrase("Password: "); 1.538 -+ password = my_getpassphrase("Password: "); 1.539 - if (! password) 1.540 - return SASL_FAIL; 1.541 - 1.542 -@@ -307,7 +305,7 @@ 1.543 - fflush(stdout); 1.544 - 1.545 - if (id == SASL_CB_ECHOPROMPT) { 1.546 -- char *original = getpassphrase(""); 1.547 -+ char *original = my_getpassphrase(""); 1.548 - if (! original) 1.549 - return SASL_FAIL; 1.550 - if (*original) 1.551 -Index: saslauthd/Makefile.am 1.552 ---- saslauthd/Makefile.am.orig 2006-05-17 18:46:17 +0200 1.553 -+++ saslauthd/Makefile.am 2008-12-25 18:48:51 +0100 1.554 -@@ -36,4 +36,4 @@ 1.555 - 1.556 - install-data-local: saslauthd.8 1.557 - $(mkinstalldirs) $(DESTDIR)$(mandir)/man8 1.558 -- $(INSTALL_DATA) $(srcdir)/saslauthd.8 $(DESTDIR)$(mandir)/man8/saslauthd.8 1.559 -+ $(INSTALL_DATA) $(srcdir)/saslauthd.mdoc $(DESTDIR)$(mandir)/man8/saslauthd.8 1.560 -Index: saslauthd/Makefile.in 1.561 ---- saslauthd/Makefile.in.orig 2008-12-25 18:48:51 +0100 1.562 -+++ saslauthd/Makefile.in 2008-12-25 18:48:51 +0100 1.563 -@@ -621,7 +621,7 @@ 1.564 - 1.565 - install-data-local: saslauthd.8 1.566 - $(mkinstalldirs) $(DESTDIR)$(mandir)/man8 1.567 -- $(INSTALL_DATA) $(srcdir)/saslauthd.8 $(DESTDIR)$(mandir)/man8/saslauthd.8 1.568 -+ $(INSTALL_DATA) $(srcdir)/saslauthd.mdoc $(DESTDIR)$(mandir)/man8/saslauthd.8 1.569 - # Tell versions [3.59,3.63) of GNU make to not export all variables. 1.570 - # Otherwise a system limit (for SysV at least) may be exceeded. 1.571 - .NOEXPORT: 1.572 -Index: saslauthd/lak.c 1.573 ---- saslauthd/lak.c.orig 2005-05-15 07:49:51 +0200 1.574 -+++ saslauthd/lak.c 2008-12-25 18:48:51 +0100 1.575 -@@ -47,6 +47,7 @@ 1.576 - #include <crypt.h> 1.577 - #endif 1.578 - 1.579 -+#include "saslauthd.h" /* get strlcpy macro for non-BSD; get HAVE_OPENSSL from config.h */ 1.580 - #ifdef HAVE_OPENSSL 1.581 - #ifndef OPENSSL_DISABLE_OLD_DES_SUPPORT 1.582 - #define OPENSSL_DISABLE_OLD_DES_SUPPORT 1.583 -@@ -57,7 +58,7 @@ 1.584 - 1.585 - #include <ldap.h> 1.586 - #include <lber.h> 1.587 --#include <sasl.h> 1.588 -+#include "sasl.h" 1.589 - #include "lak.h" 1.590 - 1.591 - typedef struct lak_auth_method { 1.592 -Index: utils/pluginviewer.c 1.593 ---- utils/pluginviewer.c.orig 2006-05-17 18:46:17 +0200 1.594 -+++ utils/pluginviewer.c 2008-12-25 18:48:51 +0100 1.595 -@@ -536,7 +536,7 @@ 1.596 - fprintf(stderr, "%s: Usage: %s [-a] [-s] [-c] [-b min=N,max=N] [-e ssf=N,id=ID] [-m MECHS] [-x AUXPROP_MECH] [-f FLAGS] [-i local=IP,remote=IP] [-p PATH]\n" 1.597 - "\t-a\tlist auxprop plugins\n" 1.598 - "\t-s\tlist server authentication (SASL) plugins\n" 1.599 -- "\t-s\tlist client authentication (SASL) plugins\n" 1.600 -+ "\t-c\tlist client authentication (SASL) plugins\n" 1.601 - "\t-b ...\t#bits to use for encryption\n" 1.602 - "\t\tmin=N\tminumum #bits to use (1 => integrity)\n" 1.603 - "\t\tmax=N\tmaximum #bits to use\n"