Skip to content

[aot] mono_aot_split_options handles \ incorrectly #108066

@lambdageek

Description

@lambdageek

The idea is that you can pass an option like --aot=foo=bar,baz="abc\"def\",xyz=012 and the AOT compiler will see options foo=bar, baz=abc"def and zyx=012.

But this line that is supposed to handle the character following a \ is wrong

if (state == MONO_AOT_OPTION_STATE_ESCAPE)
goto next;

it never resets the state back to MONO_AOT_OPTION_STATE_STRING, so everything after the \ until the end of the options is treated as a single long option: foo=bar, baz=abc\"def",xyz=012

Also the \ is itself never removed from the option - instead of bar=abc"def we get bar=abc\"def. (And this is a hard problem because we woudl need to copy or modify the string, which we don't otherwise do)

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-Codegen-AOT-monoin-prThere is an active PR which will close this issue when it is merged

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions