diff options
author | Lev Walkin <vlm@lionet.info> | 2010-10-24 22:03:14 -0700 |
---|---|---|
committer | Lev Walkin <vlm@lionet.info> | 2010-10-24 22:03:14 -0700 |
commit | a6dd57a927459e7a517833d41ba3565057f9b859 (patch) | |
tree | 33fa3fc5141c9506cf095308a169a907b1f637fb /skeletons/per_opentype.c | |
parent | 109ade5f818a8ab5d9d81e00a69e5aba3ababafb (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.c | 4 |
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; |