Fix crash for updates to environment with empty strings#5350
Merged
dra27 merged 6 commits intoocaml:masterfrom Jan 24, 2023
Merged
Fix crash for updates to environment with empty strings#5350dra27 merged 6 commits intoocaml:masterfrom
dra27 merged 6 commits intoocaml:masterfrom
Conversation
rjbou
approved these changes
Nov 28, 2022
5 tasks
FOO += "" previously caused opam to crash.
FOO = "" is honoured, but opam ignores FOO += "" (in particular, no empty segments are ever added).
Merged
kit-ty-kate
pushed a commit
to kit-ty-kate/opam
that referenced
this pull request
Feb 17, 2023
Fix crash for updates to environment with empty strings
rjbou
pushed a commit
to kit-ty-kate/opam
that referenced
this pull request
May 12, 2023
Fix crash for updates to environment with empty strings
This was referenced Sep 16, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#4326 fixed the handling of
FOO = ""insetenv/build-env, but for all the other operators, although opam can parse theenvironmentfile, it crashes. The root cause of the crash is that our path split functions return[]when passed an empty string (I think is a bad idea, but it comes from ocaml-re, and it's a bit pervasive -String.split_on_charin the stdlib I think has a more coherent approach).The first commit fixes the crash. The second commit capitalises on the fact that opam has never supported
FOO += ""correctly. The second commit causes opam to skip such updates entirely. This means, for example, thatPATH += ""is ignored (if the package really intended adding the current directory toPATH, thenPATH += "."already works today).