from 1.1 branch
authorKen Raeburn <raeburn@mit.edu>
Thu, 2 Sep 1999 21:39:46 +0000 (21:39 +0000)
committerKen Raeburn <raeburn@mit.edu>
Thu, 2 Sep 1999 21:39:46 +0000 (21:39 +0000)
1999-09-01  Danilo Almeida  <dalmeida@mit.edu>

* kuserok.c (krb5_kuserok): Fix improper negation in
non-Unix localname check.  Also fix calling convention
before this function is exported by the Windows DLL.

* localaddr.c (krb5_os_localaddr): Fix memset to clear
right address list.  (Thanks to jaltman@columbia.edu).

1999-09-01  Ken Raeburn  <raeburn@mit.edu>

* get_krbhst.c (krb5_get_krbhst): Fix double-indirection
confusion.  Do actually copy string contents to newly allocated
storage.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@11780 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/krb5/os/ChangeLog
src/lib/krb5/os/get_krbhst.c
src/lib/krb5/os/kuserok.c
src/lib/krb5/os/localaddr.c

index fdb17983094db34d597342bf995618ba712ec4e2..8cc5848e7be8bdcea8fc7826029e3db2b405ac37 100644 (file)
@@ -1,3 +1,18 @@
+1999-09-01  Danilo Almeida  <dalmeida@mit.edu>
+
+       * kuserok.c (krb5_kuserok): Fix improper negation in
+       non-Unix localname check.  Also fix calling convention
+       before this function is exported by the Windows DLL.
+
+       * localaddr.c (krb5_os_localaddr): Fix memset to clear
+       right address list.  (Thanks to jaltman@columbia.edu).
+
+1999-09-01  Ken Raeburn  <raeburn@mit.edu>
+
+       * get_krbhst.c (krb5_get_krbhst): Fix double-indirection
+       confusion.  Do actually copy string contents to newly allocated
+       storage.
+
 1999-08-21  Danilo Almeida  <dalmeida@mit.edu>
 
        * localaddr.c (krb5_os_localaddr): Use multiple addresses, if
index c929bbabaf7f704304fb10ad9277aad37e6dce5a..be2f3f9343e789c9acfd09a9778421524cf3754a 100644 (file)
@@ -64,8 +64,9 @@ krb5_get_krbhst(context, realm, hostlist)
     const char *realm_kdc_names[4];
     krb5_error_code    retval;
     int        i, count;
+    char **rethosts;
 
-    *hostlist = 0;
+    rethosts = 0;
 
     realm_kdc_names[0] = "realms";
     realm_kdc_names[1] = realm->data;
@@ -99,25 +100,29 @@ krb5_get_krbhst(context, realm, hostlist)
            *cp = 0;
     }
     count = cpp - values;
-    *hostlist = malloc(sizeof(char *) * (count + 1));
-    if (!*hostlist) {
+    rethosts = malloc(sizeof(char *) * (count + 1));
+    if (!rethosts) {
         retval = ENOMEM;
         goto cleanup;
     }
     for (i = 0; i < count; i++) {
-        *hostlist[i] = malloc(strlen(values[i]) + 1);
-        if (!*hostlist[i]) {
+       int len = strlen (values[i]) + 1;
+        rethosts[i] = malloc(len);
+        if (!rethosts[i]) {
             retval = ENOMEM;
             goto cleanup;
         }
+       memcpy (rethosts[i], values[i], len);
     }
-    *hostlist[count] = 0;
+    rethosts[count] = 0;
  cleanup:
-    if (retval && *hostlist) {
-        for (cpp = *hostlist; *cpp; cpp++)
+    if (retval && rethosts) {
+        for (cpp = rethosts; *cpp; cpp++)
             free(*cpp);
-        free(*hostlist);
+        free(rethosts);
+       rethosts = 0;
     }
     profile_free_list(values);
+    *hostlist = rethosts;
     return retval;
 }
index 6d3032e8e0cda0d451ee759c7807366a44308ea6..eff6154fdd238d146b2210375402c0ac5c20a146 100644 (file)
@@ -56,7 +56,7 @@
  *
  */
 
-krb5_boolean
+krb5_boolean KRB5_CALLCONV
 krb5_kuserok(context, principal, luser)
     krb5_context context;
     krb5_principal principal;
@@ -143,7 +143,7 @@ krb5_kuserok(context, principal, luser)
  * If the given Kerberos name "server" translates to the same name as "luser"
  * (using * krb5_aname_to_lname()), returns TRUE.
  */
-krb5_boolean
+krb5_boolean KRB5_CALLCONV
 krb5_kuserok(context, principal, luser)
     krb5_context context;
     krb5_principal principal;
@@ -151,7 +151,7 @@ krb5_kuserok(context, principal, luser)
 {
     char kuser[50];
 
-    if (krb5_aname_to_localname(context, principal, sizeof(kuser), kuser))
+    if (krb5_aname_to_localname(context, principal, sizeof(kuser), kuser))
         return FALSE;
 
     if (strcmp(kuser, luser) == 0)
index 9b64ad19ba65d6656397d0e3641a78869894cd95..82bcc468135d52fad6d7b5c4bd3cd211309dbde5 100644 (file)
@@ -327,7 +327,7 @@ krb5_os_localaddr (krb5_context context, krb5_address ***addr) {
         goto cleanup;
     }
 
-    memset(addr, 0, sizeof(krb5_address *) * (count+1));
+    memset(paddr, 0, sizeof(krb5_address *) * (count+1));
 
     for (i = 0; i < count; i++)
     {