Alexander Haderer wrote:

Just another guess: Probably it makes a difference if the patchfile patches ./dir/tobepatched and dir/tobepatched. A brief look into other ports shows me that the latter is used. I don't know if it have to be this way or not.

Ok. I'm trying to patch "/usr/ports/security/cyrus-sasl2-saslauthd/work/cyrus-sasl-2.1.17/saslauthd/auth_pam.c". The patchfile is named "patch-aa" and is located in "/usr/ports/security/cyrus-sasl2-saslauthd/files". Here is the contents of the patchfile that works manually, when I cd to "/usr/ports/security/cyrus-sasl2-saslauthd/work/cyrus-sasl-2.1.17" and run "patch < /usr/ports/security/cyrus-sasl2-saslauthd/files/patch-aa":


Index: saslauthd/auth_pam.c
diff -u saslauthd/auth_pam.c.orig saslauthd/auth_pam.c
--- saslauthd/auth_pam.c.orig   Sat May 31 13:00:24 2003
+++ saslauthd/auth_pam.c        Tue Mar  9 11:53:44 2004
@@ -178,7 +178,7 @@
   const char *login,                   /* I: plaintext authenticator */
   const char *password,                        /* I: plaintext password */
   const char *service,                 /* I: service name */
-  const char *realm __attribute__((unused))
+  const char *realm
   /* END PARAMETERS */
   )
 {
@@ -186,17 +186,25 @@
     pam_appdata my_appdata;            /* application specific data */
     struct pam_conv my_conv;           /* pam conversion data */
     pam_handle_t *pamh;                        /* pointer to PAM handle */
+    char user[256];
     int rc;                            /* return code holder */
     /* END VARIABLES */

-    my_appdata.login = login;
+    strlcpy(user, login, 256);
+
+    if (realm) {
+        strlcat(user, "@", 256);
+        strlcat(user, realm, 256);
+    }
+
+    my_appdata.login = user;
     my_appdata.password = password;
     my_appdata.pamh = NULL;

     my_conv.conv = saslauthd_pam_conv;
     my_conv.appdata_ptr = &my_appdata;

-    rc = pam_start(service, login, &my_conv, &pamh);
+    rc = pam_start(service, user, &my_conv, &pamh);
     if (rc != PAM_SUCCESS) {
        syslog(LOG_DEBUG, "DEBUG: auth_pam: pam_start failed: %s",
               pam_strerror(pamh, rc));


It all looks right to me, but when I do a "make clean" follwed by a make, the file does not get patched. What am I doing wrong?


-ste

_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to