remove util_alloc.c
[mech_eap.git] / util_radius.cpp
index 7beb175..314c685 100644 (file)
@@ -59,10 +59,10 @@ radiusAllocHandle(const char *configFile,
     if (rs_context_create(&rh, RS_DICT_FILE) != 0)
         return NULL;
 
-    ralloc.calloc = gssEapCalloc;
-    ralloc.malloc = gssEapMalloc;
-    ralloc.free = gssEapFree;
-    ralloc.realloc = gssEapRealloc;
+    ralloc.calloc = GSSEAP_CALLOC;
+    ralloc.malloc = GSSEAP_MALLOC;
+    ralloc.free = GSSEAP_FREE;
+    ralloc.realloc = GSSEAP_REALLOC;
 
     rs_context_set_alloc_scheme(rh, &ralloc);
 
@@ -506,6 +506,8 @@ gssEapRadiusFreeAvps(OM_uint32 *minor,
                      VALUE_PAIR **vps)
 {
     pairfree(vps);
+    *minor = 0;
+    return GSS_S_COMPLETE;
 }
 
 OM_uint32
@@ -685,10 +687,14 @@ avpImport(rs_handle *rh,
         break;
     case PW_TYPE_STRING:
         /* check enough room to NUL terminate */
-        if (p[0] >= MAX_STRING_LEN)
+        if (p[0] == MAX_STRING_LEN)
             goto fail;
+        else
         /* fallthrough */
     default:
+        if (p[0] > MAX_STRING_LEN)
+            goto fail;
+
         vp->length = (uint32_t)p[0];
         memcpy(vp->vp_octets, p + 1, vp->length);