Skip to content

Commit

Permalink
Only accept values 0-255 in terminator/pad-right
Browse files Browse the repository at this point in the history
  • Loading branch information
generalmimon committed Jul 20, 2024
1 parent 54524e1 commit 74a4c62
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
4 changes: 2 additions & 2 deletions shared/src/main/scala/io/kaitai/struct/format/AttrSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -179,11 +179,11 @@ object AttrSpec {
val sizeEos = ParseUtils.getOptValueBool(srcMap, "size-eos", path).getOrElse(false)
val ifExpr = ParseUtils.getOptValueExpression(srcMap, "if", path)
val encoding = ParseUtils.getOptValueStr(srcMap, "encoding", path)
val terminator = ParseUtils.getOptValueInt(srcMap, "terminator", path)
val terminator = ParseUtils.getOptValueByte(srcMap, "terminator", path)
val consume = ParseUtils.getOptValueBool(srcMap, "consume", path).getOrElse(true)
val include = ParseUtils.getOptValueBool(srcMap, "include", path).getOrElse(false)
val eosError = ParseUtils.getOptValueBool(srcMap, "eos-error", path).getOrElse(true)
val padRight = ParseUtils.getOptValueInt(srcMap, "pad-right", path)
val padRight = ParseUtils.getOptValueByte(srcMap, "pad-right", path)
val enumOpt = ParseUtils.getOptValueStr(srcMap, "enum", path)
val parent = ParseUtils.getOptValueExpression(srcMap, "parent", path)
val valid = srcMap.get("valid").map(ValidationSpec.fromYaml(_, path ++ List("valid")))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,15 @@ object ParseUtils {
}
}

def getOptValueByte(src: Map[String, Any], field: String, path: List[String]): Option[Int] = {
getOptValueInt(src, field, path).map { value =>
if (value < 0 || value > 255) {
throw KSYParseError.withText(s"expected an integer from 0 to 255, got ${value}", path ++ List(field))
}
value
}
}

def getValueIdentifier(src: Map[String, Any], idx: Int, entityName: String, path: List[String]): Identifier = {
getOptValueStr(src, "id", path) match {
case Some(idStr) =>
Expand Down

0 comments on commit 74a4c62

Please sign in to comment.