Menu

#217 `execute' broken by design

open
nobody
None
5
2005-02-04
2005-02-04
No

`execute FILE' makes the server request the contents of
FILE from the client. Subsequent input is then
consumed by execute(), until an error occurs, update or
similar abort the command, or the client signals end of
file.

This is broken by design. Empire I/O is asynchronous.
The client may have sent more commands before
receiving the server's request for FILE. These
commands are then consumed by execute() instead of
command(), and *before* the contents of FILE!

To reproduce, try

$ echo nat >script
$ emp_client POGO peter <<EOF
execute script
EOF

The client most likely will get EOF from stdin and send
ctld before it receives the request for script.

Discussion


Log in to post a comment.