windows-nim-afs-longer-cell-names-20081107
authorAsanka Herath <asanka@secure-endpoints.com>
Fri, 7 Nov 2008 18:19:38 +0000 (18:19 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Fri, 7 Nov 2008 18:19:38 +0000 (18:19 +0000)
LICENSE MIT

permit cell and realm names to be longer than the input field.

src/WINNT/netidmgr_plugin/afsfuncs.c
src/WINNT/netidmgr_plugin/afsnewcreds.c
src/WINNT/netidmgr_plugin/afspext.h
src/WINNT/netidmgr_plugin/lang/en_us/langres.rc

index a4e7137..34a564f 100644 (file)
@@ -735,8 +735,8 @@ afs_klog(khm_handle identity,
     CREDENTIALS        creds;
     struct ktc_principal       aserver;
     struct ktc_principal       aclient;
-    char       realm_of_user[REALM_SZ]; /* Kerberos realm of user */
-    char       realm_of_cell[REALM_SZ]; /* Kerberos realm of cell */
+    char       realm_of_user[MAXKTCREALMLEN]; /* Kerberos realm of user */
+    char       realm_of_cell[MAXKTCREALMLEN]; /* Kerberos realm of cell */
     char       local_cell[MAXCELLCHARS+1];
     char       Dmycell[MAXCELLCHARS+1];
     struct ktc_token   atoken;
@@ -837,8 +837,8 @@ afs_klog(khm_handle identity,
 
             pkrb5_cc_get_principal(context, k5cc, &client_principal);
             i = krb5_princ_realm(context, client_principal)->length;
-            if (i > REALM_SZ-1) 
-                i = REALM_SZ-1;
+            if (i > MAXKTCREALMLEN-1) 
+                i = MAXKTCREALMLEN-1;
             StringCchCopyNA(realm_of_user, ARRAYLENGTH(realm_of_user),
                             krb5_princ_realm(context, client_principal)->data,
                             i);
@@ -1158,6 +1158,7 @@ afs_klog(khm_handle identity,
         _reportf(L"Kerberos 4 not configured");
 
     if (!bGotCreds && supports_krb4 && 
+        strlen(RealmName) < REALM_SZ && 
         (method == AFS_TOKEN_AUTO ||
          method == AFS_TOKEN_KRB4)) {
 
@@ -1315,7 +1316,7 @@ static char *
 afs_realm_of_cell(afs_conf_cell *cellconfig, BOOL referral_fallback)
 {
     char krbhst[MAX_HSTNM]="";
-    static char krbrlm[REALM_SZ+1]="";
+    static char krbrlm[MAXKTCREALMLEN+1]="";
     krb5_context  ctx = 0;
     char ** realmlist=NULL;
     krb5_error_code r = 0;
index 16c03ee..ff91161 100644 (file)
@@ -1563,6 +1563,10 @@ afs_dlg_proc(HWND hwnd,
             SendDlgItemMessage(hwnd, IDC_NCAFS_OBTAIN, 
                                BM_SETCHECK, BST_CHECKED, 0);
 
+            SendDlgItemMessage(hwnd, IDC_NCAFS_CELL, CB_LIMITTEXT, MAXCELLCHARS-1, 0);
+            SendDlgItemMessage(hwnd, IDC_NCAFS_REALM, CB_LIMITTEXT, MAXKTCREALMLEN-1, 0);
+            SendDlgItemMessage(hwnd, IDC_NCAFS_METHOD, CB_LIMITTEXT, KCDB_MAXCCH_NAME-1, 0);
+
             LeaveCriticalSection(&d->cs);
 
             /* the cells and realms combo boxes need to be filled
@@ -2654,7 +2658,7 @@ afs_msg_newcred(khm_int32 msg_subtype,
             for(i=0; i<l->n_rows; i++) {
                 int code;
                 char cell[MAXCELLCHARS];
-                char realm[MAXCELLCHARS];
+                char realm[MAXKTCREALMLEN];
                 char linkedCell[MAXCELLCHARS]="";
                 khm_handle ctoken;
                 FILETIME ft_old;
@@ -2714,7 +2718,7 @@ afs_msg_newcred(khm_int32 msg_subtype,
               getLinked:
                 _report_cs3(KHERR_INFO,
                             L"Getting tokens for cell %1!S! with realm %2!S! using method %3!d!",
-                            _cstr(bgetLinked ? linkedCell: cell),
+                            _cstr((bgetLinked ? linkedCell: cell)),
                             _cstr(realm),
                             _int32(method));
                 _resolve();
index d30bffb..85414a1 100644 (file)
@@ -40,8 +40,8 @@
 
   @{*/
 
-#define MAXCELLCHARS   64
-#define MAXHOSTCHARS   64
+#define MAXCELLCHARS   256
+#define MAXHOSTCHARS   256
 #define MAXHOSTSPERCELL 8
 
 #define TRANSARCAFSDAEMON "TransarcAFSDaemon"
index c206157..ad25c72 100644 (file)
@@ -61,11 +61,11 @@ BEGIN
     CONTROL         "Obtain &AFS credentials",IDC_NCAFS_OBTAIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,19,140,12
     GROUPBOX        "Credential for",IDC_STATIC,7,32,286,54
     LTEXT           "&Cell",IDC_STATIC,12,41,42,10
-    COMBOBOX        IDC_NCAFS_CELL,57,38,152,48,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_NCAFS_CELL,57,38,152,48,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
     LTEXT           "&Realm",IDC_STATIC,12,57,42,10
-    COMBOBOX        IDC_NCAFS_REALM,57,54,152,48,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_NCAFS_REALM,57,54,152,48,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
     LTEXT           "&Method",IDC_STATIC,12,73,42,10
-    COMBOBOX        IDC_NCAFS_METHOD,57,70,152,48,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_NCAFS_METHOD,57,70,152,48,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
     PUSHBUTTON      "&Add/Update",IDC_NCAFS_ADD_TOKEN,213,38,77,13,BS_NOTIFY
     PUSHBUTTON      "&Delete",IDC_NCAFS_DELETE_TOKEN,213,70,77,13,BS_NOTIFY
     CONTROL         "",IDC_NCAFS_TOKENLIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,7,88,286,71
@@ -88,11 +88,11 @@ BEGIN
     CONTROL         "Obtain &AFS credentials",IDC_NCAFS_OBTAIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,7,140,12
     GROUPBOX        "Credential for",IDC_STATIC,7,18,221,56
     LTEXT           "&Cell",IDC_STATIC,13,28,42,10
-    COMBOBOX        IDC_NCAFS_CELL,57,25,109,48,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_NCAFS_CELL,57,25,109,48,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
     LTEXT           "&Realm",IDC_STATIC,13,44,42,10
-    COMBOBOX        IDC_NCAFS_REALM,57,41,109,48,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_NCAFS_REALM,57,41,109,48,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
     LTEXT           "&Method",IDC_STATIC,13,60,42,10
-    COMBOBOX        IDC_NCAFS_METHOD,57,57,109,48,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_NCAFS_METHOD,57,57,109,48,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
     PUSHBUTTON      "&Add/Update",IDC_NCAFS_ADD_TOKEN,174,26,50,13,BS_NOTIFY
     PUSHBUTTON      "&Delete",IDC_NCAFS_DELETE_TOKEN,174,56,50,13,BS_NOTIFY
     CONTROL         "",IDC_NCAFS_TOKENLIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,7,75,221,69