aboutsummaryrefslogtreecommitdiffstats
path: root/skeletons/per_opentype.c
diff options
context:
space:
mode:
authorLev Walkin <vlm@lionet.info>2010-10-24 22:03:14 -0700
committerLev Walkin <vlm@lionet.info>2010-10-24 22:03:14 -0700
commita6dd57a927459e7a517833d41ba3565057f9b859 (patch)
tree33fa3fc5141c9506cf095308a169a907b1f637fb /skeletons/per_opentype.c
parent109ade5f818a8ab5d9d81e00a69e5aba3ababafb (diff)
X.691 specifies an octet full of zeroes as a valid complete encoding.
Diffstat (limited to 'skeletons/per_opentype.c')
-rw-r--r--skeletons/per_opentype.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/skeletons/per_opentype.c b/skeletons/per_opentype.c
index c749c8c6..a6cc04b2 100644
--- a/skeletons/per_opentype.c
+++ b/skeletons/per_opentype.c
@@ -106,7 +106,9 @@ uper_open_type_get_simple(asn_codec_ctx_t *ctx, asn_TYPE_descriptor_t *td,
if(rv.code == RC_OK) {
/* Check padding validity */
padding = spd.nbits - spd.nboff;
- if(padding < 8 && per_get_few_bits(&spd, padding) == 0) {
+ if (((rv.consumed == 0 && padding == 8) /* X.691#10.1.3 */
+ || padding < 8) &&
+ per_get_few_bits(&spd, padding) == 0) {
/* Everything is cool */
FREEMEM(buf);
return rv;