lix/tests
Tuomas Tynkkynen a0e38c16bc libexpr: Recognize newline in more places in lexer
Flex's regexes have an annoying feature: the dot matches everything
except a newline. This causes problems for expressions like:

"${0}\
"

where the backslash-newline combination matches this rule instead of the
intended one mentioned in the comment:

    <STRING>\$|\\|\$\\ {
                    /* This can only occur when we reach EOF, otherwise the above
                    (...|\$[^\{\"\\]|\\.|\$\\.)+ would have triggered.
                    This is technically invalid, but we leave the problem to the
                    parser who fails with exact location. */
                    return STR;
                }
However, the parser actually accepts the resulting token sequence
('"' DOLLAR_CURLY 0 '}' STR '"'), which is a problem because the lexer
rule didn't assign anything to yylval. Ultimately this leads to a crash
when dereferencing a NULL pointer in ExprConcatStrings::bindVars().

The fix does change the syntax of the language in some corner cases
but I think it's only turning previously invalid (or crashing) syntax
to valid syntax. E.g.

"a\
b"

and

''a''\
b''

were previously syntax errors but now both result in "a\nb".

Found by afl-fuzz.
2018-03-02 17:30:48 +02:00
..
lang libexpr: Recognize newline in more places in lexer 2018-03-02 17:30:48 +02:00
plugins Allow plugins to define new settings. 2018-02-13 14:43:32 -05:00
add.sh
binary-cache.sh Test: Replace --option with the corresponding flag 2017-11-20 17:50:49 +01:00
brotli.sh use libbrotli directly when available 2017-12-30 20:26:33 -06:00
build-dry.sh build-dry: disable failing portion of test until issue is fixed 2018-02-07 15:20:54 -06:00
build-hook.nix build-remote: Add a basic test 2017-05-02 15:46:10 +02:00
build-remote.sh Fix tests using user namespaces on kernels that don't have it 2018-01-13 19:08:41 +02:00
case-hack.sh Fix tests 2014-08-21 21:50:19 +02:00
case.nar Handle case collisions on case-insensitive systems 2014-07-16 16:02:05 +02:00
check-refs.nix Add disallowedReferences / disallowedRequisites 2014-08-28 18:57:13 +02:00
check-refs.sh Add disallowedReferences / disallowedRequisites 2014-08-28 18:57:13 +02:00
check-reqs.nix Add disallowedReferences / disallowedRequisites 2014-08-28 18:57:13 +02:00
check-reqs.sh Print out all bad references/requisites at once 2016-04-16 19:58:26 -04:00
check.nix Fix test 2018-01-22 17:04:08 +01:00
check.sh Don't access tarballs.nixos.org in a test 2018-01-22 16:56:28 +01:00
common.sh.in Remove obsolete references to manifests 2018-02-01 10:39:16 +01:00
config.nix Pass lists/attrsets to bash as (associative) arrays 2017-10-25 13:01:50 +02:00
dependencies.builder0.sh Test executables in NARs 2014-02-26 18:59:01 +01:00
dependencies.builder1.sh
dependencies.builder2.sh
dependencies.nix
dependencies.sh
dump-db.sh Remove $NIX_DB_DIR 2016-08-10 18:05:35 +02:00
export-graph.nix
export-graph.sh
export.sh
fetchGit.sh Add pure evaluation mode 2018-01-16 19:23:18 +01:00
fetchMercurial.sh Add pure evaluation mode 2018-01-16 19:23:18 +01:00
fetchurl.sh Test: Replace --option with the corresponding flag 2017-11-20 17:50:49 +01:00
filter-source.nix Use shorter daemon socket path in tests 2016-03-24 14:45:55 +01:00
filter-source.sh Fix tests 2014-08-21 21:50:19 +02:00
fixed.builder1.sh
fixed.builder2.sh
fixed.nix
fixed.sh Remove nix-build --hash 2018-02-03 10:08:05 +01:00
gc-concurrent.builder.sh
gc-concurrent.nix
gc-concurrent.sh Fix tests 2014-08-21 21:50:19 +02:00
gc-concurrent2.builder.sh
gc-runtime.nix
gc-runtime.sh Fix gc-runtime test 2016-09-12 13:40:07 +02:00
gc.sh Test nix-store -q --roots 2014-02-26 18:00:46 +01:00
hash-check.nix
hash.sh Support base-64 hashes 2017-07-04 15:07:41 +02:00
import-derivation.nix
import-derivation.sh
init.sh Allow includes from nix.conf 2018-02-13 08:16:32 -05:00
install-darwin.sh Rename PINCH_ME_IM_SILLY to ALLOW_PREEXISTING_INSTALLATION 2017-07-14 12:11:33 -04:00
lang.sh Fix tests 2014-08-21 21:50:19 +02:00
linux-sandbox.sh Fix tests using user namespaces on kernels that don't have it 2018-01-13 19:08:41 +02:00
local.mk Merge branch 'fix/dry-run-partially' of https://github.com/dtzWill/nix 2018-02-22 12:18:20 +01:00
logging.sh Test: Replace --option with the corresponding flag 2017-11-20 17:50:49 +01:00
misc.sh Improve filtering of ANSI escape sequences in build logs 2018-02-07 15:23:57 +01:00
multiple-outputs.nix
multiple-outputs.sh nix-shell/nix-build: Support .drv files again 2017-11-24 18:08:35 +01:00
nar-access.nix Rename tests/nar-index -> tests/nar-access 2017-11-14 13:27:40 +01:00
nar-access.sh nix ls-{nar,store}: Return offset of files in the NAR if known 2017-12-07 01:07:07 +01:00
nix-build.sh nix-shell/nix-build: Support .drv files again 2017-11-24 18:08:35 +01:00
nix-channel.sh Fix tests 2017-10-02 23:45:27 -04:00
nix-copy-closure.nix dsa -> ed25519 2018-02-08 13:46:23 +01:00
nix-profile.sh Fix nix-profile test in a chroot 2016-05-31 13:07:24 +02:00
nix-shell.sh nix-shell/nix-build: Support .drv files again 2017-11-24 18:08:35 +01:00
optimise-store.sh Test: Replace --option with the corresponding flag 2017-11-20 17:50:49 +01:00
parallel.builder.sh
parallel.nix
parallel.sh
pass-as-file.sh Use $<attr>Path instead of $<attr> for passAsFile 2015-02-17 16:42:54 +01:00
placeholders.sh Add a mechanism for derivation attributes to reference the derivation's outputs 2016-08-17 17:19:32 +02:00
plugins.sh Allow plugins to define new settings. 2018-02-13 14:43:32 -05:00
pure-eval.nix Add pure evaluation mode 2018-01-16 19:23:18 +01:00
pure-eval.sh Add pure evaluation mode 2018-01-16 19:23:18 +01:00
referrers.sh Remove $NIX_DB_DIR 2016-08-10 18:05:35 +02:00
remote-builds.nix dsa -> ed25519 2018-02-08 13:46:23 +01:00
remote-store.sh Remove $NIX_DB_DIR 2016-08-10 18:05:35 +02:00
repair.sh Test: Replace --option with the corresponding flag 2017-11-20 17:50:49 +01:00
restricted.nix Add pure evaluation mode 2018-01-16 19:23:18 +01:00
restricted.sh realiseContext(): Add derivation outputs to the allowed paths 2018-02-06 15:38:45 +01:00
run.nix Add tests for "nix run" 2017-11-20 18:36:36 +01:00
run.sh Fix tests using user namespaces on kernels that don't have it 2018-01-13 19:08:41 +02:00
secure-drv-outputs.nix
secure-drv-outputs.sh Remove manifest support 2016-04-11 16:20:15 +02:00
setuid.nix release.nix: Use fetchTarball and fetchGit 2017-12-22 11:35:32 +01:00
shell.nix Fix nix-shell test 2017-04-25 18:59:18 +02:00
shell.shebang.sh Rename "use-substitutes" to "substitute" 2018-01-04 16:58:39 +01:00
signing.sh Fix test 2017-12-07 01:07:07 +01:00
simple.builder.sh
simple.nix
simple.sh Handle $TMPDIR ending with a slash 2016-10-19 15:19:38 +02:00
structured-attrs.nix exportReferencesGraph: Allow exporting a list of store paths 2017-10-25 15:18:49 +02:00
structured-attrs.sh Pass lists/attrsets to bash as (associative) arrays 2017-10-25 13:01:50 +02:00
tarball.sh Fix test failure 2016-09-08 18:22:28 +02:00
timeout.nix Replace Unicode quotes in user-facing strings by ASCII 2017-07-30 12:32:45 +01:00
timeout.sh Test: Replace --option with the corresponding flag 2017-11-20 17:50:49 +01:00
user-envs.builder.sh
user-envs.nix
user-envs.sh nix-env: Fix parsing of --system 2018-02-08 15:25:03 +01:00