]> git.pld-linux.org Git - packages/samba.git/blame - samba-pam_smbpass-syslog.patch
- release 2
[packages/samba.git] / samba-pam_smbpass-syslog.patch
CommitLineData
59721e2d
JR
1Goal: Don't call openlog() or closelog() from pam_smbpass
2
3Fixes: bug #434372 (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=434372)
4
5Upstream status: submitted as bugzilla bug #4831
6
7Index: samba-3.0.25c/source/pam_smbpass/support.c
8===================================================================
9--- samba-3.0.25c.orig/source/pam_smbpass/support.c 2007-08-26 12:07:14.098417404 +0200
10+++ samba-3.0.25c/source/pam_smbpass/support.c 2007-08-26 13:09:09.419359938 +0200
11@@ -15,6 +15,7 @@
12 * Mass Ave, Cambridge, MA 02139, USA.
13 */
14
15+ #include "config.h"
16 #include "includes.h"
17 #include "general.h"
18
19@@ -66,19 +67,44 @@
20
21 char *servicesf = dyn_CONFIGFILE;
22
23- /* syslogging function for errors and other information */
24-
25- void _log_err( int err, const char *format, ... )
26- {
27- va_list args;
28+/* syslogging function for errors and other information */
29+#ifdef HAVE_PAM_VSYSLOG
30+void _log_err( pam_handle_t *pamh, int err, const char *format, ... )
31+{
32+ va_list args;
33
34- va_start( args, format );
35- openlog( "PAM_smbpass", LOG_CONS | LOG_PID, LOG_AUTH );
36- vsyslog( err, format, args );
37- va_end( args );
38- closelog();
39+ va_start(args, format);
40+ pam_vsyslog(pamh, err, format, args);
41+ va_end(args);
42+}
43+#else
44+void _log_err( pam_handle_t *pamh, int err, const char *format, ... )
45+{
46+ va_list args;
47+ const char tag[] = "(pam_smbpass) ";
48+ char *mod_format;
49+
50+ mod_format = SMB_MALLOC_ARRAY(char, sizeof(tag) + strlen(format));
51+ /* try really, really hard to log something, since this may have
52+ been a message about a malloc() failure... */
53+ if (mod_format == NULL) {
54+ va_start(args, format);
55+ vsyslog(err | LOG_AUTH, format, args);
56+ va_end(args);
57+ return;
58 }
59
60+ strncpy(mod_format, tag, strlen(tag)+1);
61+ strncat(mod_format, format, strlen(format));
62+
63+ va_start(args, format);
64+ vsyslog(err | LOG_AUTH, mod_format, args);
65+ va_end(args);
66+
67+ free(mod_format);
68+}
69+#endif
70+
71 /* this is a front-end for module-application conversations */
72
73 int converse( pam_handle_t * pamh, int ctrl, int nargs
74@@ -95,12 +121,14 @@
75 ,response, conv->appdata_ptr);
76
77 if (retval != PAM_SUCCESS && on(SMB_DEBUG, ctrl)) {
78- _log_err(LOG_DEBUG, "conversation failure [%s]"
79- ,pam_strerror(pamh, retval));
80+ _log_err(pamh, LOG_DEBUG,
81+ "conversation failure [%s]",
82+ pam_strerror(pamh, retval));
83 }
84 } else {
85- _log_err(LOG_ERR, "couldn't obtain coversation function [%s]"
86- ,pam_strerror(pamh, retval));
87+ _log_err(pamh, LOG_ERR,
88+ "couldn't obtain coversation function [%s]",
89+ pam_strerror(pamh, retval));
90 }
91
92 return retval; /* propagate error status */
93@@ -126,7 +154,7 @@
94
95 /* set the control flags for the SMB module. */
96
97-int set_ctrl( int flags, int argc, const char **argv )
98+int set_ctrl( pam_handle_t *pamh, int flags, int argc, const char **argv )
99 {
100 int i = 0;
101 const char *service_file = dyn_CONFIGFILE;
102@@ -168,7 +196,7 @@
103 /* Read some options from the Samba config. Can be overridden by
104 the PAM config. */
105 if(lp_load(service_file,True,False,False,True) == False) {
106- _log_err( LOG_ERR, "Error loading service file %s", service_file );
107+ _log_err(pamh, LOG_ERR, "Error loading service file %s", service_file);
108 }
109
110 secrets_init();
111@@ -191,7 +219,7 @@
112 }
113
114 if (j >= SMB_CTRLS_) {
115- _log_err( LOG_ERR, "unrecognized option [%s]", *argv );
116+ _log_err(pamh, LOG_ERR, "unrecognized option [%s]", *argv);
117 } else {
118 ctrl &= smb_args[j].mask; /* for turning things off */
119 ctrl |= smb_args[j].flag; /* for turning things on */
120@@ -230,7 +258,7 @@
121 * evidence of old token around for later stack analysis.
122 *
123 */
124-char * smbpXstrDup( const char *x )
125+char * smbpXstrDup( pam_handle_t *pamh, const char *x )
126 {
127 register char *newstr = NULL;
128
129@@ -240,7 +268,7 @@
130 for (i = 0; x[i]; ++i); /* length of string */
131 if ((newstr = SMB_MALLOC_ARRAY(char, ++i)) == NULL) {
132 i = 0;
133- _log_err( LOG_CRIT, "out of memory in smbpXstrDup" );
134+ _log_err(pamh, LOG_CRIT, "out of memory in smbpXstrDup");
135 } else {
136 while (i-- > 0) {
137 newstr[i] = x[i];
138@@ -282,7 +310,7 @@
139 /* log the number of authentication failures */
140 if (failure->count != 0) {
141 pam_get_item( pamh, PAM_SERVICE, (const void **) &service );
142- _log_err( LOG_NOTICE
143+ _log_err(pamh, LOG_NOTICE
144 , "%d authentication %s "
145 "from %s for service %s as %s(%d)"
146 , failure->count
147@@ -291,7 +319,7 @@
148 , service == NULL ? "**unknown**" : service
149 , failure->user, failure->id );
150 if (failure->count > SMB_MAX_RETRIES) {
151- _log_err( LOG_ALERT
152+ _log_err(pamh, LOG_ALERT
153 , "service(%s) ignoring max retries; %d > %d"
154 , service == NULL ? "**unknown**" : service
155 , failure->count
156@@ -327,8 +355,7 @@
157
158 if (!pdb_get_lanman_passwd(sampass))
159 {
160- _log_err( LOG_DEBUG, "user %s has null SMB password"
161- , name );
162+ _log_err(pamh, LOG_DEBUG, "user %s has null SMB password", name);
163
164 if (off( SMB__NONULL, ctrl )
165 && (pdb_get_acct_ctrl(sampass) & ACB_PWNOTREQ))
166@@ -338,15 +365,16 @@
167 const char *service;
168
169 pam_get_item( pamh, PAM_SERVICE, (const void **)&service );
170- _log_err( LOG_NOTICE, "failed auth request by %s for service %s as %s",
171- uidtoname(getuid()), service ? service : "**unknown**", name);
172+ _log_err(pamh, LOG_NOTICE,
173+ "failed auth request by %s for service %s as %s",
174+ uidtoname(getuid()), service ? service : "**unknown**", name);
175 return PAM_AUTH_ERR;
176 }
177 }
178
179 data_name = SMB_MALLOC_ARRAY(char, sizeof(FAIL_PREFIX) + strlen( name ));
180 if (data_name == NULL) {
181- _log_err( LOG_CRIT, "no memory for data-name" );
182+ _log_err(pamh, LOG_CRIT, "no memory for data-name");
183 }
184 strncpy( data_name, FAIL_PREFIX, sizeof(FAIL_PREFIX) );
185 strncpy( data_name + sizeof(FAIL_PREFIX) - 1, name, strlen( name ) + 1 );
186@@ -392,31 +420,31 @@
187 retval = PAM_MAXTRIES;
188 }
189 } else {
190- _log_err(LOG_NOTICE,
191+ _log_err(pamh, LOG_NOTICE,
192 "failed auth request by %s for service %s as %s",
193 uidtoname(getuid()),
194 service ? service : "**unknown**", name);
195 newauth->count = 1;
196 }
197 if (!sid_to_uid(pdb_get_user_sid(sampass), &(newauth->id))) {
198- _log_err(LOG_NOTICE,
199+ _log_err(pamh, LOG_NOTICE,
200 "failed auth request by %s for service %s as %s",
201 uidtoname(getuid()),
202 service ? service : "**unknown**", name);
203 }
204- newauth->user = smbpXstrDup( name );
205- newauth->agent = smbpXstrDup( uidtoname( getuid() ) );
206+ newauth->user = smbpXstrDup(pamh, name);
207+ newauth->agent = smbpXstrDup(pamh, uidtoname( getuid() ));
208 pam_set_data( pamh, data_name, newauth, _cleanup_failures );
209
210 } else {
211- _log_err( LOG_CRIT, "no memory for failure recorder" );
212- _log_err(LOG_NOTICE,
213+ _log_err(pamh, LOG_CRIT, "no memory for failure recorder");
214+ _log_err(pamh, LOG_NOTICE,
215 "failed auth request by %s for service %s as %s(%d)",
216 uidtoname(getuid()),
217 service ? service : "**unknown**", name);
218 }
219 } else {
220- _log_err(LOG_NOTICE,
221+ _log_err(pamh, LOG_NOTICE,
222 "failed auth request by %s for service %s as %s(%d)",
223 uidtoname(getuid()),
224 service ? service : "**unknown**", name);
225@@ -490,8 +518,8 @@
226 retval = pam_get_item( pamh, authtok_flag, (const void **) &item );
227 if (retval != PAM_SUCCESS) {
228 /* very strange. */
229- _log_err( LOG_ALERT
230- , "pam_get_item returned error to smb_read_password" );
231+ _log_err(pamh, LOG_ALERT,
232+ "pam_get_item returned error to smb_read_password");
233 return retval;
234 } else if (item != NULL) { /* we have a password! */
235 *pass = item;
236@@ -543,7 +571,7 @@
237
238 if (retval == PAM_SUCCESS) { /* a good conversation */
239
240- token = smbpXstrDup(resp[j++].resp);
241+ token = smbpXstrDup(pamh, resp[j++].resp);
242 if (token != NULL) {
243 if (expect == 2) {
244 /* verify that password entered correctly */
245@@ -555,7 +583,8 @@
246 }
247 }
248 } else {
249- _log_err(LOG_NOTICE, "could not recover authentication token");
250+ _log_err(pamh, LOG_NOTICE,
251+ "could not recover authentication token");
252 }
253 }
254
255@@ -568,7 +597,7 @@
256
257 if (retval != PAM_SUCCESS) {
258 if (on( SMB_DEBUG, ctrl ))
259- _log_err( LOG_DEBUG, "unable to obtain a password" );
260+ _log_err(pamh, LOG_DEBUG, "unable to obtain a password");
261 return retval;
262 }
263 /* 'token' is the entered password */
264@@ -583,7 +612,7 @@
265 || (retval = pam_get_item( pamh, authtok_flag
266 ,(const void **)&item )) != PAM_SUCCESS)
267 {
268- _log_err( LOG_CRIT, "error manipulating password" );
269+ _log_err(pamh, LOG_CRIT, "error manipulating password");
270 return retval;
271 }
272 } else {
273@@ -597,8 +626,8 @@
274 || (retval = pam_get_data( pamh, data_name, (const void **)&item ))
275 != PAM_SUCCESS)
276 {
277- _log_err( LOG_CRIT, "error manipulating password data [%s]"
278- , pam_strerror( pamh, retval ));
279+ _log_err(pamh, LOG_CRIT, "error manipulating password data [%s]",
280+ pam_strerror( pamh, retval ));
281 _pam_delete( token );
282 item = NULL;
283 return retval;
284@@ -622,8 +651,8 @@
285 if (pass_new == NULL || (pass_old && !strcmp( pass_old, pass_new )))
286 {
287 if (on(SMB_DEBUG, ctrl)) {
288- _log_err( LOG_DEBUG,
289- "passwd: bad authentication token (null or unchanged)" );
290+ _log_err(pamh, LOG_DEBUG,
291+ "passwd: bad authentication token (null or unchanged)");
292 }
293 make_remark( pamh, ctrl, PAM_ERROR_MSG, pass_new == NULL ?
294 "No password supplied" : "Password unchanged" );
295Index: samba-3.0.25c/source/pam_smbpass/pam_smb_auth.c
296===================================================================
297--- samba-3.0.25c.orig/source/pam_smbpass/pam_smb_auth.c 2007-08-26 12:07:14.098417404 +0200
298+++ samba-3.0.25c/source/pam_smbpass/pam_smb_auth.c 2007-08-26 13:09:09.419359938 +0200
299@@ -75,10 +75,9 @@
300
301 /* Samba initialization. */
302 load_case_tables();
303- setup_logging("pam_smbpass",False);
304 in_client = True;
305
306- ctrl = set_ctrl(flags, argc, argv);
307+ ctrl = set_ctrl(pamh, flags, argc, argv);
308
309 /* Get a few bytes so we can pass our return value to
310 pam_sm_setcred(). */
311@@ -93,23 +92,23 @@
312 retval = pam_get_user( pamh, &name, "Username: " );
313 if ( retval != PAM_SUCCESS ) {
314 if (on( SMB_DEBUG, ctrl )) {
315- _log_err(LOG_DEBUG, "auth: could not identify user");
316+ _log_err(pamh, LOG_DEBUG, "auth: could not identify user");
317 }
318 AUTH_RETURN;
319 }
320 if (on( SMB_DEBUG, ctrl )) {
321- _log_err( LOG_DEBUG, "username [%s] obtained", name );
322+ _log_err(pamh, LOG_DEBUG, "username [%s] obtained", name);
323 }
324
325 if (!initialize_password_db(True)) {
326- _log_err( LOG_ALERT, "Cannot access samba password database" );
327+ _log_err(pamh, LOG_ALERT, "Cannot access samba password database");
328 retval = PAM_AUTHINFO_UNAVAIL;
329 AUTH_RETURN;
330 }
331
332 sampass = samu_new( NULL );
333 if (!sampass) {
334- _log_err( LOG_ALERT, "Cannot talloc a samu struct" );
335+ _log_err(pamh, LOG_ALERT, "Cannot talloc a samu struct");
336 retval = nt_status_to_pam(NT_STATUS_NO_MEMORY);
337 AUTH_RETURN;
338 }
339@@ -123,7 +122,7 @@
340 }
341
342 if (!found) {
343- _log_err(LOG_ALERT, "Failed to find entry for user %s.", name);
344+ _log_err(pamh, LOG_ALERT, "Failed to find entry for user %s.", name);
345 retval = PAM_USER_UNKNOWN;
346 TALLOC_FREE(sampass);
347 sampass = NULL;
348@@ -142,7 +141,7 @@
349
350 retval = _smb_read_password(pamh, ctrl, NULL, "Password: ", NULL, _SMB_AUTHTOK, &p);
351 if (retval != PAM_SUCCESS ) {
352- _log_err(LOG_CRIT, "auth: no password provided for [%s]", name);
353+ _log_err(pamh,LOG_CRIT, "auth: no password provided for [%s]", name);
354 TALLOC_FREE(sampass);
355 AUTH_RETURN;
356 }
357@@ -194,8 +193,8 @@
358 retval = pam_get_item( pamh, PAM_AUTHTOK, (const void **) &pass );
359
360 if (retval != PAM_SUCCESS) {
361- _log_err( LOG_ALERT
362- , "pam_get_item returned error to pam_sm_authenticate" );
363+ _log_err(pamh, LOG_ALERT,
364+ "pam_get_item returned error to pam_sm_authenticate");
365 return PAM_AUTHTOK_RECOVER_ERR;
366 } else if (pass == NULL) {
367 return PAM_AUTHTOK_RECOVER_ERR;
368Index: samba-3.0.25c/source/pam_smbpass/pam_smb_acct.c
369===================================================================
370--- samba-3.0.25c.orig/source/pam_smbpass/pam_smb_acct.c 2007-08-26 12:07:14.098417404 +0200
371+++ samba-3.0.25c/source/pam_smbpass/pam_smb_acct.c 2007-08-26 13:09:09.419359938 +0200
372@@ -52,29 +52,28 @@
373
374 /* Samba initialization. */
375 load_case_tables();
376- setup_logging( "pam_smbpass", False );
377 in_client = True;
378
379- ctrl = set_ctrl( flags, argc, argv );
380+ ctrl = set_ctrl(pamh, flags, argc, argv);
381
382 /* get the username */
383
384 retval = pam_get_user( pamh, &name, "Username: " );
385 if (retval != PAM_SUCCESS) {
386 if (on( SMB_DEBUG, ctrl )) {
387- _log_err( LOG_DEBUG, "acct: could not identify user" );
388+ _log_err(pamh, LOG_DEBUG, "acct: could not identify user");
389 }
390 return retval;
391 }
392 if (on( SMB_DEBUG, ctrl )) {
393- _log_err( LOG_DEBUG, "acct: username [%s] obtained", name );
394+ _log_err(pamh, LOG_DEBUG, "acct: username [%s] obtained", name);
395 }
396
397 /* Getting into places that might use LDAP -- protect the app
398 from a SIGPIPE it's not expecting */
399 oldsig_handler = CatchSignal(SIGPIPE, SIGNAL_CAST SIG_IGN);
400 if (!initialize_password_db(True)) {
401- _log_err( LOG_ALERT, "Cannot access samba password database" );
402+ _log_err(pamh, LOG_ALERT, "Cannot access samba password database");
403 CatchSignal(SIGPIPE, SIGNAL_CAST oldsig_handler);
404 return PAM_AUTHINFO_UNAVAIL;
405 }
406@@ -88,7 +87,7 @@
407 }
408
409 if (!pdb_getsampwnam(sampass, name )) {
410- _log_err( LOG_DEBUG, "acct: could not identify user" );
411+ _log_err(pamh, LOG_DEBUG, "acct: could not identify user");
412 CatchSignal(SIGPIPE, SIGNAL_CAST oldsig_handler);
413 return PAM_USER_UNKNOWN;
414 }
415@@ -101,8 +100,8 @@
416
417 if (pdb_get_acct_ctrl(sampass) & ACB_DISABLED) {
418 if (on( SMB_DEBUG, ctrl )) {
419- _log_err( LOG_DEBUG
420- , "acct: account %s is administratively disabled", name );
421+ _log_err(pamh, LOG_DEBUG,
422+ "acct: account %s is administratively disabled", name);
423 }
424 make_remark( pamh, ctrl, PAM_ERROR_MSG
425 , "Your account has been disabled; "
426Index: samba-3.0.25c/source/pam_smbpass/pam_smb_passwd.c
427===================================================================
428--- samba-3.0.25c.orig/source/pam_smbpass/pam_smb_passwd.c 2007-08-26 12:07:14.098417404 +0200
429+++ samba-3.0.25c/source/pam_smbpass/pam_smb_passwd.c 2007-08-26 13:09:09.419359938 +0200
430@@ -104,10 +104,9 @@
431
432 /* Samba initialization. */
433 load_case_tables();
434- setup_logging( "pam_smbpass", False );
435 in_client = True;
436
437- ctrl = set_ctrl(flags, argc, argv);
438+ ctrl = set_ctrl(pamh, flags, argc, argv);
439
440 /*
441 * First get the name of a user. No need to do anything if we can't
442@@ -117,12 +116,12 @@
443 retval = pam_get_user( pamh, &user, "Username: " );
444 if (retval != PAM_SUCCESS) {
445 if (on( SMB_DEBUG, ctrl )) {
446- _log_err( LOG_DEBUG, "password: could not identify user" );
447+ _log_err(pamh, LOG_DEBUG, "password: could not identify user");
448 }
449 return retval;
450 }
451 if (on( SMB_DEBUG, ctrl )) {
452- _log_err( LOG_DEBUG, "username [%s] obtained", user );
453+ _log_err(pamh, LOG_DEBUG, "username [%s] obtained", user);
454 }
455
456 /* Getting into places that might use LDAP -- protect the app
457@@ -130,7 +129,7 @@
458 oldsig_handler = CatchSignal(SIGPIPE, SIGNAL_CAST SIG_IGN);
459
460 if (!initialize_password_db(False)) {
461- _log_err( LOG_ALERT, "Cannot access samba password database" );
462+ _log_err(pamh, LOG_ALERT, "Cannot access samba password database");
463 CatchSignal(SIGPIPE, SIGNAL_CAST oldsig_handler);
464 return PAM_AUTHINFO_UNAVAIL;
465 }
466@@ -142,12 +141,12 @@
467 }
468
469 if (!pdb_getsampwnam(sampass,user)) {
470- _log_err( LOG_ALERT, "Failed to find entry for user %s.", user );
471+ _log_err(pamh, LOG_ALERT, "Failed to find entry for user %s.", user);
472 CatchSignal(SIGPIPE, SIGNAL_CAST oldsig_handler);
473 return PAM_USER_UNKNOWN;
474 }
475 if (on( SMB_DEBUG, ctrl )) {
476- _log_err( LOG_DEBUG, "Located account for %s", user );
477+ _log_err(pamh, LOG_DEBUG, "Located account for %s", user);
478 }
479
480 if (flags & PAM_PRELIM_CHECK) {
481@@ -173,7 +172,7 @@
482 #define greeting "Changing password for "
483 Announce = SMB_MALLOC_ARRAY(char, sizeof(greeting)+strlen(user));
484 if (Announce == NULL) {
485- _log_err(LOG_CRIT, "password: out of memory");
486+ _log_err(pamh, LOG_CRIT, "password: out of memory");
487 TALLOC_FREE(sampass);
488 CatchSignal(SIGPIPE, SIGNAL_CAST oldsig_handler);
489 return PAM_BUF_ERR;
490@@ -188,8 +187,8 @@
491 SAFE_FREE( Announce );
492
493 if (retval != PAM_SUCCESS) {
494- _log_err( LOG_NOTICE
495- , "password - (old) token not obtained" );
496+ _log_err(pamh, LOG_NOTICE,
497+ "password - (old) token not obtained");
498 TALLOC_FREE(sampass);
499 CatchSignal(SIGPIPE, SIGNAL_CAST oldsig_handler);
500 return retval;
501@@ -234,7 +233,7 @@
502 }
503
504 if (retval != PAM_SUCCESS) {
505- _log_err( LOG_NOTICE, "password: user not authenticated" );
506+ _log_err(pamh, LOG_NOTICE, "password: user not authenticated");
507 TALLOC_FREE(sampass);
508 CatchSignal(SIGPIPE, SIGNAL_CAST oldsig_handler);
509 return retval;
510@@ -259,8 +258,8 @@
511
512 if (retval != PAM_SUCCESS) {
513 if (on( SMB_DEBUG, ctrl )) {
514- _log_err( LOG_ALERT
515- , "password: new password not obtained" );
516+ _log_err(pamh, LOG_ALERT,
517+ "password: new password not obtained");
518 }
519 pass_old = NULL; /* tidy up */
520 TALLOC_FREE(sampass);
521@@ -281,7 +280,7 @@
522 retval = _pam_smb_approve_pass(pamh, ctrl, pass_old, pass_new);
523
524 if (retval != PAM_SUCCESS) {
525- _log_err(LOG_NOTICE, "new password not acceptable");
526+ _log_err(pamh, LOG_NOTICE, "new password not acceptable");
527 pass_new = pass_old = NULL; /* tidy up */
528 TALLOC_FREE(sampass);
529 CatchSignal(SIGPIPE, SIGNAL_CAST oldsig_handler);
530@@ -301,16 +300,17 @@
531
532 /* password updated */
533 if (!sid_to_uid(pdb_get_user_sid(sampass), &uid)) {
534- _log_err( LOG_NOTICE, "Unable to get uid for user %s",
535+ _log_err(pamh, LOG_NOTICE,
536+ "Unable to get uid for user %s",
537 pdb_get_username(sampass));
538- _log_err( LOG_NOTICE, "password for (%s) changed by (%s/%d)",
539+ _log_err(pamh, LOG_NOTICE, "password for (%s) changed by (%s/%d)",
540 user, uidtoname(getuid()), getuid());
541 } else {
542- _log_err( LOG_NOTICE, "password for (%s/%d) changed by (%s/%d)",
543+ _log_err(pamh, LOG_NOTICE, "password for (%s/%d) changed by (%s/%d)",
544 user, uid, uidtoname(getuid()), getuid());
545 }
546 } else {
547- _log_err( LOG_ERR, "password change failed for user %s", user);
548+ _log_err(pamh, LOG_ERR, "password change failed for user %s", user);
549 }
550
551 pass_old = pass_new = NULL;
552@@ -321,7 +321,7 @@
553
554 } else { /* something has broken with the library */
555
556- _log_err( LOG_ALERT, "password received unknown request" );
557+ _log_err(pamh, LOG_ALERT, "password received unknown request");
558 retval = PAM_ABORT;
559
560 }
561Index: samba-3.0.25c/source/pam_smbpass/support.h
562===================================================================
563--- samba-3.0.25c.orig/source/pam_smbpass/support.h 2007-08-26 12:07:14.098417404 +0200
564+++ samba-3.0.25c/source/pam_smbpass/support.h 2007-08-26 13:09:09.419359938 +0200
565@@ -1,8 +1,8 @@
566 /* syslogging function for errors and other information */
567-extern void _log_err(int, const char *, ...);
568+extern void _log_err(pam_handle_t *, int, const char *, ...);
569
570 /* set the control flags for the UNIX module. */
571-extern int set_ctrl(int, int, const char **);
572+extern int set_ctrl(pam_handle_t *, int, int, const char **);
573
574 /* generic function for freeing pam data segments */
575 extern void _cleanup(pam_handle_t *, void *, int);
576@@ -12,7 +12,7 @@
577 * evidence of old token around for later stack analysis.
578 */
579
580-extern char *smbpXstrDup(const char *);
581+extern char *smbpXstrDup(pam_handle_t *,const char *);
582
583 /* ************************************************************** *
584 * Useful non-trivial functions *
This page took 0.162313 seconds and 4 git commands to generate.