Commit Graph

7 Commits

Author SHA1 Message Date
Neels Hofmeyr 71cb3d49a8 fix 3 indents to avoid build failure with -Werror
The build failures complain about misleading indentation:

 ../../../src/libasn1c/src/per_decoder.c:161:9: error: this 'if' clause does not guard... [-Werror=misleading-indentation]
  161 |         if(!td->aper_decoder)
      |         ^~
 ../../../src/libasn1c/src/per_decoder.c:163:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
  163 |                 rval = td->aper_decoder(opt_codec_ctx, td, 0, sptr, &pd);
      |                 ^~~~

Change-Id: I9ebd0de9135722bb718e2a5067f9b8238d0483dc
2022-07-19 14:04:21 +02:00
Harald Welte 20d668cbd3 aper fix for decoding constrained integer with lower boundary
When decoding a constrained integer with a lower boundary, we need
to make sure the lower bound is added after decoding the raw offset
inside the range.

Before this change, RANAP_CauseMisc_unspecified_failure (115) would be
encoded as 2 (115 - 113 = 2), but would be decoded as 2, rather than
113+2 = 115.

Code for this was taken from
openairinterface5g/openair3/S1AP/MESSAGES/ASN1/asn1cpatch.p0 which
unfortunately doesn't carry much of a revision history :/
2016-05-01 01:05:34 +02:00
Harald Welte c867ddeb30 fix APER encoding of integer (backport from openairinterface)
The number of bytes used by an APER encoded integer depends on its
actually encoded value, not on the maximum value that could be possibly
encoded.

The old code would e.g. always use 24 bits if the maximum encoded value
would require 24 bits.

To give an example RANAP MaxBitrate (INTEER 1 .. 16000000) value 64000
was previously encoded as "80 00 f9 ff", while it is now the correct
representation "40 f9 ff".

Thanks to Dieter Spaar for detecting this problem in the Osmo-IUH
generated RANAP output, and thanks to openairinterface for fixing the
bug in their code (sadly not contributed to upstream asn1c, though).
2016-04-30 17:39:04 +02:00
Harald Welte 667d758c92 APER: Fix encoding of INTEGER with lower_bound != 0
When encoding an INTEGER, we need to subtract the lower bound before
encoding the value.  This is specified in Clause 10.5.7.x of X.691.

The decoder already does this correct, but the encoder was wrong.
2015-12-19 13:37:02 +01:00
Harald Welte 41b85d5597 update to asn1c aper branch commit 6e00cbce7304a6972e82a12bb5fa82e41fa541be
which is closes to Lev Walkins master 62913d8b8e1eb96d74315ff748475ca818b69752
2015-08-31 09:35:13 +02:00
Harald Welte ec0e217b06 Update to asn1c official repository svn trunk r1409 2010-07-20 00:03:44 +02:00
Harald Welte 92c45f3390 initial import of /usr/share/asn1c/*.[ch] skeleton files 2010-06-12 18:59:38 +02:00