break;
case PW_TYPE_OCTETS:
- vp->vp_octets = talloc_memdup(vp, data, vp->length);
- talloc_set_type(vp->vp_octets, uint8_t);
+ pairmemcpy(vp, data, vp->length);
break;
case PW_TYPE_ABINARY:
}
vp->vp_octets = us;
} else {
- pairstrcpy(vp, value);
- talloc_set_type(vp->vp_octets, uint8_t); /* fixup type */
+ pairmemcpy(vp, (const uint8_t *) value, strlen(value));
}
break;
if (dst->da->type == PW_TYPE_OCTETS) {
if (src->da->type == PW_TYPE_STRING) {
- dst->vp_octets = talloc_memdup(dst, src->vp_strvalue, src->length);
- talloc_set_type(dst->vp_octets, uint8_t);
+ pairmemcpy(dst, src->vp_octets, src->length); /* Copy embedded NULLs */
} else {
- dst->vp_octets = talloc_memdup(dst, &src->data, src->length);
- talloc_set_type(dst->vp_octets, uint8_t);
+ pairmemcpy(dst, (uint8_t const *) &src->data, src->length);
}
-
- dst->length = src->length;
return true;
}
if (request->parent && (request->parent->coa == request)) {
request->parent->coa = NULL;
}
-
+
#endif
/*
if ((request->packet->code == PW_CODE_AUTHENTICATION_REQUEST) &&
pairfind(request->proxy->vps, PW_CHAP_PASSWORD, 0, TAG_ANY) &&
pairfind(request->proxy->vps, PW_CHAP_CHALLENGE, 0, TAG_ANY) == NULL) {
- uint8_t *p;
- vp = radius_paircreate(request, &request->proxy->vps,
- PW_CHAP_CHALLENGE, 0);
- vp->length = sizeof(request->packet->vector);
- vp->vp_octets = p = talloc_array(vp, uint8_t, vp->length);
-
- memcpy(p, request->packet->vector,
- sizeof(request->packet->vector));
+ vp = radius_paircreate(request, &request->proxy->vps, PW_CHAP_CHALLENGE, 0);
+ pairmemcpy(vp, request->packet->vector, sizeof(request->packet->vector));
}
/*
* The RFC's say we have to do this, but FreeRADIUS
* doesn't need it.
*/
- vp = radius_paircreate(request, &request->proxy->vps,
- PW_PROXY_STATE, 0);
+ vp = radius_paircreate(request, &request->proxy->vps, PW_PROXY_STATE, 0);
pairsprintf(vp, "%u", request->packet->id);
/*
if (pairfind(request->packet->vps, PW_CHAP_PASSWORD, 0, TAG_ANY) &&
pairfind(request->packet->vps, PW_CHAP_CHALLENGE, 0, TAG_ANY) == NULL) {
VALUE_PAIR *vp;
- uint8_t *p;
vp = radius_paircreate(request, &request->packet->vps, PW_CHAP_CHALLENGE, 0);
- vp->length = AUTH_VECTOR_LEN;
- vp->vp_octets = p = talloc_array(vp, uint8_t, vp->length);
-
- memcpy(p, request->packet->vector, AUTH_VECTOR_LEN);
+ pairmemcpy(vp, request->packet->vector, AUTH_VECTOR_LEN);
}
if ((r = huntgroup_access(request, inst->huntgroups)) != RLM_MODULE_OK) {