Skip to content

Parsing issues of syscall numbers #54

@theKidOfArcrania

Description

@theKidOfArcrania

Okay so this is actually two issues, so I will place them on two tickets, but I feel that they might be related.

First let's say I use a syscall that exist in x86_64 (or amd64) but not in i386, such as readdir:

A = readdir

If I do not pass a flag -a i386, then this syscall should not exist, and I should expect this error:

Traceback (most recent call last):
	10: from /usr/local/bin/seccomp-tools:23:in `<main>'
	 9: from /usr/local/bin/seccomp-tools:23:in `load'
	 8: from /var/lib/gems/2.5.0/gems/seccomp-tools-1.2.0/bin/seccomp-tools:5:in `<top (required)>'
	 7: from /var/lib/gems/2.5.0/gems/seccomp-tools-1.2.0/lib/seccomp-tools/cli/cli.rb:54:in `work'
	 6: from /var/lib/gems/2.5.0/gems/seccomp-tools-1.2.0/lib/seccomp-tools/cli/asm.rb:43:in `handle'
	 5: from /var/lib/gems/2.5.0/gems/seccomp-tools-1.2.0/lib/seccomp-tools/asm/asm.rb:30:in `asm'
	 4: from /var/lib/gems/2.5.0/gems/seccomp-tools-1.2.0/lib/seccomp-tools/asm/asm.rb:30:in `each'
	 3: from /var/lib/gems/2.5.0/gems/seccomp-tools-1.2.0/lib/seccomp-tools/asm/asm.rb:30:in `block in asm'
	 2: from /var/lib/gems/2.5.0/gems/seccomp-tools-1.2.0/lib/seccomp-tools/asm/compiler.rb:27:in `process'
	 1: from /var/lib/gems/2.5.0/gems/seccomp-tools-1.2.0/lib/seccomp-tools/asm/compiler.rb:38:in `rescue in process'
/var/lib/gems/2.5.0/gems/seccomp-tools-1.2.0/lib/seccomp-tools/asm/compiler.rb:268:in `invalid': Invalid instruction at line 1: "A = readdir" (ArgumentError)

or something like that, since this constant does not exist in the amd64 architecture, but instead I get a pretty cryptic error like the following:

Traceback (most recent call last):
	10: from /usr/local/bin/seccomp-tools:23:in `<main>'
	 9: from /usr/local/bin/seccomp-tools:23:in `load'
	 8: from /var/lib/gems/2.5.0/gems/seccomp-tools-1.2.0/bin/seccomp-tools:5:in `<top (required)>'
	 7: from /var/lib/gems/2.5.0/gems/seccomp-tools-1.2.0/lib/seccomp-tools/cli/cli.rb:54:in `work'
	 6: from /var/lib/gems/2.5.0/gems/seccomp-tools-1.2.0/lib/seccomp-tools/cli/asm.rb:43:in `handle'
	 5: from /var/lib/gems/2.5.0/gems/seccomp-tools-1.2.0/lib/seccomp-tools/asm/asm.rb:31:in `asm'
	 4: from /var/lib/gems/2.5.0/gems/seccomp-tools-1.2.0/lib/seccomp-tools/asm/compiler.rb:50:in `compile!'
	 3: from /var/lib/gems/2.5.0/gems/seccomp-tools-1.2.0/lib/seccomp-tools/asm/compiler.rb:50:in `with_index'
	 2: from /var/lib/gems/2.5.0/gems/seccomp-tools-1.2.0/lib/seccomp-tools/asm/compiler.rb:50:in `map'
	 1: from /var/lib/gems/2.5.0/gems/seccomp-tools-1.2.0/lib/seccomp-tools/asm/compiler.rb:53:in `block in compile!'
/var/lib/gems/2.5.0/gems/seccomp-tools-1.2.0/lib/seccomp-tools/asm/compiler.rb:97:in `compile_assign': undefined method `first' for nil:NilClass (NoMethodError)

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions