Skip to content

BadInputs cause StackOverflow/Access Violation #198

Description

@kulgg

Description
On certain inputs some v2.8 Datatype structures are stuck in an endless recursive loop calling their own constructor. This causes a StackOverflow Exception in net461 and an access violation exit in netcoreapp 3.1. This recursive loop is caused because the Datatype implementation is not according to the HL7 Definition.

Exceptions and Inputs

  • StackOverflow/Access violation
    b"MSH|^|||||||ADT^A40|||2.8\rIN2||||||||||||||||||||||||||||A"
    b"MSH|^|||||||ADT^A40|||2.8\rIN2|||||||||||||||||||||||||||||A"

Environmental Details

  • OS: Ubuntu 20.04
  • Target Framework net641, netcoreapp3.1, probably generally
  • Version 3.0.0 preview 2

Additional context
The 2.8 Datatypes RMC, PTA and PPN implemented withdrawn fields wrongly.
See 2A.3.65, 2A.3.59 and 2A.3.56 of spec.

Activity

  1. milkshakeuk commented on Apr 11, 2021

    @milkshakeuk
    Member

    @JlKmn again thank you for this.

    The message structures specific to each hl7 version are generated from the HL7 database. Which suggests perhaps the database also needs updating, I'll have a look into this and reach out to the maintainer of the database if this is the case.

  2. milkshakeuk commented on Apr 12, 2021

    @milkshakeuk
    Member

    @JlKmn is this fixed by #197

  3. kulgg commented on Apr 12, 2021

    @kulgg
    ContributorAuthor

    Yes

  4. kulgg commented on Apr 12, 2021

    @kulgg
    ContributorAuthor

    I decided to add the solution in there

  5. added this to the v3.0.0.0 milestone on Apr 12, 2021
  6. added
    bugThe result of a coding Error
    and removed on Apr 12, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugThe result of a coding Error

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions