X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibldap%2Ft61.c;h=9397e1d5d17fbfff5ef9ff19dfb481b37531aa38;hb=d2da9c1a7d1480eb6b8ae8c2a8e78392f44f4289;hp=4450e2d3ba7ea9722b7260f80b60ad5e7803a959;hpb=6939c531700652491f4be4688c6a1f35a1ab8a18;p=openldap
diff --git a/libraries/libldap/t61.c b/libraries/libldap/t61.c
index 4450e2d3ba..9397e1d5d1 100644
--- a/libraries/libldap/t61.c
+++ b/libraries/libldap/t61.c
@@ -1,7 +1,20 @@
/* $OpenLDAP$ */
-/*
- * Copyright 2002-2003 The OpenLDAP Foundation, All Rights Reserved.
- * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+/* This work is part of OpenLDAP Software .
+ *
+ * Copyright 2002-2012 The OpenLDAP Foundation.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in the file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * .
+ */
+/* ACKNOWLEDGEMENTS:
+ * This work was initially developed by Howard Chu for inclusion in
+ * OpenLDAP Software.
*/
/*
@@ -332,7 +345,7 @@ int ldap_t61s_to_utf8s( struct berval *src, struct berval *dst )
/* Invalid T.61 characters? */
if (!t61_tab[*c])
return LDAP_INVALID_SYNTAX;
- if (*c & 0xf0 == 0xc0) {
+ if ((*c & 0xf0) == 0xc0) {
int j = *c & 0x0f;
/* If this is the end of the string, or if the base
* character is just a space, treat this as a regular
@@ -368,7 +381,7 @@ int ldap_t61s_to_utf8s( struct berval *src, struct berval *dst )
return LDAP_NO_MEMORY;
for (i=0,c=(unsigned char *)src->bv_val; i < src->bv_len; c++,i++) {
- if (*c & 0xf0 == 0xc0) {
+ if ((*c & 0xf0) == 0xc0) {
int j = *c & 0x0f;
/* If this is the end of the string, or if the base
* character is just a space, treat this as a regular
@@ -671,6 +684,8 @@ int ldap_utf8s_to_t61s( struct berval *src, struct berval *dst )
*d++ = 0x3f;
break;
}
+ i += j;
+ c += j;
}
*d = '\0';
return LDAP_SUCCESS;