Skip to content

Commit

Permalink
[yaml2obj] Fixing opening empty yaml files.
Browse files Browse the repository at this point in the history
Essentially echo "" | yaml2obj crashes. This patch attempts to trim whitespace
and determine if the yaml string in the file is empty or not. If the input is
empty then it will not properly print out an error message and return an error
code.

Differential Revision: https://reviews.llvm.org/D59964

A    test/tools/yaml2obj/empty.yaml
M    tools/yaml2obj/yaml2obj.cpp

llvm-svn: 357219
  • Loading branch information
plotfi committed Mar 28, 2019
1 parent da063e6 commit 6c82695
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 1 deletion.
5 changes: 5 additions & 0 deletions llvm/test/tools/yaml2obj/empty.yaml
@@ -0,0 +1,5 @@
# RUN: echo "" | not yaml2obj 2>&1 | FileCheck %s
# RUN: echo -n "" | not yaml2obj 2>&1 | FileCheck %s
# RUN: echo " " | not yaml2obj 2>&1 | FileCheck %s
# RUN: echo " " | not yaml2obj 2>&1 | FileCheck %s
# CHECK: yaml2obj: Error opening '-': Empty File.
5 changes: 4 additions & 1 deletion llvm/tools/yaml2obj/yaml2obj.cpp
Expand Up @@ -86,7 +86,10 @@ int main(int argc, char **argv) {
if (!Buf)
return 1;

yaml::Input YIn(Buf.get()->getBuffer());
StringRef Buffer = Buf.get()->getBuffer();
if (Buffer.trim().size() == 0)
error("yaml2obj: Error opening '" + Input + "': Empty File.");
yaml::Input YIn(Buffer);

int Res = convertYAML(YIn, Out->os());
if (Res == 0)
Expand Down

0 comments on commit 6c82695

Please sign in to comment.