REAL fixed; verify constraints as well
git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@1291 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/skeletons/REAL.c b/skeletons/REAL.c
index df5b9b3..5e93ac8 100644
--- a/skeletons/REAL.c
+++ b/skeletons/REAL.c
@@ -453,16 +453,16 @@
return -1;
}
- if((octv & 0x03) == 0x11) {
- /* 8.5.6.4, case d) */
+ elen = (octv & 0x03); /* bits 2 to 1; 8.5.6.4 */
+ if(elen == 0x03) { /* bits 2 to 1 = 11; 8.5.6.4, case d) */
elen = st->buf[1]; /* unsigned binary number */
if(elen == 0 || st->size <= (int)(2 + elen)) {
errno = EINVAL;
return -1;
}
+ /* FIXME: verify constraints of case d) */
ptr = &st->buf[2];
} else {
- elen = (octv & 0x03);
ptr = &st->buf[1];
}