diff options
-rw-r--r-- | lib/headerfmt.c | 4 | ||||
-rw-r--r-- | tests/rpmquery.at | 15 |
2 files changed, 19 insertions, 0 deletions
diff --git a/lib/headerfmt.c b/lib/headerfmt.c index 7c0da1bd9..f4c249a26 100644 --- a/lib/headerfmt.c +++ b/lib/headerfmt.c @@ -469,6 +469,10 @@ static int parseFormat(headerSprintfArgs hsa, char * str, if (*start == '\\') { start++; + if (*start == '\0') { + hsaError(hsa, _("escaped char expected after \\")); + goto errxit; + } *dst++ = escapedChar(*start++); } else { *dst++ = *start++; diff --git a/tests/rpmquery.at b/tests/rpmquery.at index 0dc6d78b6..36c62339a 100644 --- a/tests/rpmquery.at +++ b/tests/rpmquery.at @@ -849,4 +849,19 @@ runroot rpm \ 355 355 ], []) +AT_CLEANUP + +# ------------------------------ +AT_SETUP([incomplete escape sequence for format query]) +AT_KEYWORDS([query]) +AT_CHECK([ +runroot rpm \ + --queryformat='%{NAME}\n\' \ + -qp /data/RPMS/foo-1.0-1.noarch.rpm +], +[0], +[], +[error: incorrect format: escaped char expected after \ +], +) AT_CLEANUP
\ No newline at end of file |