*** ssh-2.0.13/lib/sshutil/sshencode.c 1999/11/30 20:26:38 1.1 --- ssh-2.0.13/lib/sshutil/sshencode.c 1999/11/30 20:38:31 *************** size_t ssh_decode_array_va(const unsigne *** 512,518 **** decoder = va_arg(ap, SshDecoder); /* Try decoding. */ ! start_of_ap = ap; size = (*decoder)(buf + offset, len - offset, &ap); if (size == 0) goto fail; --- 512,518 ---- decoder = va_arg(ap, SshDecoder); /* Try decoding. */ ! __va_copy(start_of_ap, ap); size = (*decoder)(buf + offset, len - offset, &ap); if (size == 0) goto fail; *************** size_t ssh_decode_array_va(const unsigne *** 524,530 **** decoders = ssh_xrealloc(decoders, (num_decoders + 1) * sizeof(*decoders)); decoders[num_decoders].decoder = decoder; ! decoders[num_decoders].ap = start_of_ap; num_decoders++; /* Move over parsed data. */ --- 524,530 ---- decoders = ssh_xrealloc(decoders, (num_decoders + 1) * sizeof(*decoders)); decoders[num_decoders].decoder = decoder; ! __va_copy(decoders[num_decoders].ap, start_of_ap); num_decoders++; /* Move over parsed data. */