From 821d89c20e7fbd7826e641c9b010ab0b7e659150 Mon Sep 17 00:00:00 2001 From: Sylvain Munaut Date: Mon, 14 Jun 2010 23:36:29 +0200 Subject: [PATCH] per_support: Fix bit error in encoding process Thanks to Dieter Spaar for finding and fixing this ! --- skeletons/per_support.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/skeletons/per_support.c b/skeletons/per_support.c index e8299c73..173e696c 100644 --- a/skeletons/per_support.c +++ b/skeletons/per_support.c @@ -336,7 +336,8 @@ per_put_few_bits(asn_per_outp_t *po, uint32_t bits, int obits) { buf[3] = bits; else { ASN_DEBUG("->[PER out split %d]", obits); - per_put_few_bits(po, bits >> 8, 24); + po->nboff -= obits; /* undo incrementation from a few lines above */ + per_put_few_bits(po, bits >> (obits - 24), 24); /* shift according to the rest of the bits */ per_put_few_bits(po, bits, obits - 24); ASN_DEBUG("<-[PER out split %d]", obits); }