return NULL;
}
- if (node == node0)
+ if (node == node0) {
+ if (node == NULL)
+ strncpy(parser->errmsg,
+ _("error: empty filter expression"),
+ ERRMSG_LEN - 1);
return node;
+ }
node = node0;
}
}
strcpy(filter->errmsg, parser.errmsg);
return filter;
}
+ assert(node);
if (parser.paren_level > 0) {
node_free(node);
strncpy(filter->errmsg, _("error: unbalanced parenthesis: ("), ERRMSG_LEN - 1);
--- /dev/null
+lsfd: error: empty filter expression
+lsfd: error: empty filter expression
+lsfd: error: unbalanced parenthesis: )
+lsfd: error: unexpected token: garbage after OP2
+lsfd: error: bool expression is expected: FD
+lsfd: unknown column: NOSUCHCOLUMN
+lsfd: error: no such column: NOSUCHCOLUMN
--- /dev/null
+#!/bin/bash
+#
+# Copyright (C) 2022 Masatake YAMATO <yamato@redhat.com>
+#
+# This file is part of util-linux.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This file is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+TS_TOPDIR="${0%/*}/../.."
+TS_DESC="passing broken expressions to -Q option"
+
+. $TS_TOPDIR/functions.sh
+ts_init "$*"
+
+ts_check_test_command "$TS_CMD_LSFD"
+
+ts_cd "$TS_OUTDIR"
+
+{
+ $TS_CMD_LSFD -Q ''
+ $TS_CMD_LSFD -Q '('
+ $TS_CMD_LSFD -Q ')'
+ $TS_CMD_LSFD -Q '(FD == 1)garbage'
+ $TS_CMD_LSFD -Q 'FD'
+ $TS_CMD_LSFD -Q 'NOSUCHCOLUMN'
+} > $TS_OUTPUT 2>&1
+
+ts_finalize