+ case SILC_PARAM_UI32_NSTRING | SILC_PARAM_ALLOC:
+ {
+ SilcUInt32 len2;
+ unsigned char **x = va_arg(ap, unsigned char **);
+ SilcUInt32 *len3 = va_arg(ap, SilcUInt32 *);
+ UNFORMAT_HAS_SPACE(src, 4);
+ SILC_GET32_MSB(len2, src->data);
+ silc_buffer_pull(src, 4);
+ UNFORMAT_HAS_SPACE(src, len2);
+ if (len3)
+ *len3 = len2;
+ if (silc_likely(x && len2)) {
+ *x = silc_scalloc(stack, len2 + 1, sizeof(unsigned char));
+ memcpy(*x, src->data, len2);
+ }
+ silc_buffer_pull(src, len2);
+ break;
+ }