summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>1999-09-02 21:39:46 +0000
committerKen Raeburn <raeburn@mit.edu>1999-09-02 21:39:46 +0000
commit1b959a62b436e61749986a520378bba642d1f57b (patch)
tree4b51ea8039335ad41c4baf5fdd28b6fd73fecb31 /src
parentb8c79298858dcc1b71e7548f6a1d8f6cf22597b9 (diff)
downloadkrb5-1b959a62b436e61749986a520378bba642d1f57b.tar.gz
krb5-1b959a62b436e61749986a520378bba642d1f57b.tar.xz
krb5-1b959a62b436e61749986a520378bba642d1f57b.zip
from 1.1 branch
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
Diffstat (limited to 'src')
-rw-r--r--src/lib/krb5/os/ChangeLog15
-rw-r--r--src/lib/krb5/os/get_krbhst.c23
-rw-r--r--src/lib/krb5/os/kuserok.c6
-rw-r--r--src/lib/krb5/os/localaddr.c2
4 files changed, 33 insertions, 13 deletions
diff --git a/src/lib/krb5/os/ChangeLog b/src/lib/krb5/os/ChangeLog
index fdb1798309..8cc5848e7b 100644
--- a/src/lib/krb5/os/ChangeLog
+++ b/src/lib/krb5/os/ChangeLog
@@ -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
diff --git a/src/lib/krb5/os/get_krbhst.c b/src/lib/krb5/os/get_krbhst.c
index c929bbabaf..be2f3f9343 100644
--- a/src/lib/krb5/os/get_krbhst.c
+++ b/src/lib/krb5/os/get_krbhst.c
@@ -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;
}
diff --git a/src/lib/krb5/os/kuserok.c b/src/lib/krb5/os/kuserok.c
index 6d3032e8e0..eff6154fdd 100644
--- a/src/lib/krb5/os/kuserok.c
+++ b/src/lib/krb5/os/kuserok.c
@@ -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)
diff --git a/src/lib/krb5/os/localaddr.c b/src/lib/krb5/os/localaddr.c
index 9b64ad19ba..82bcc46813 100644
--- a/src/lib/krb5/os/localaddr.c
+++ b/src/lib/krb5/os/localaddr.c
@@ -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++)
{