Subject: conditional branching
From: Erik Popp <[email-masked]>
To: [email-masked]
Date: Thu, 12 Mar 2015 02:42:07 +0000 (UTC)
List-Id: <debbugs-submit.debbugs.gnu.org>

I'm using sed to verify that a log file is in the correct format, to make it impossible for crafted input to cause any problems in a shell script.

I'm stumped, and the only explanation that I can think of for why my script isn't working is that sed's "t" command is not working properly.

If I comment out any 2 of the 3 main commands, the output is as expected:

white space stripper always "succeeds", and thus the script jumps to the success section

curly brace detector jumps to the "success" section if triggered.  otherwise, the t command fails, because there wasn't a substitution in the first place

entry converter succeeds if format of entry is valid, assuming that there isn't any surrounding white space

However, if I un-comment all 3 of the main commands, the script doesn't fail when input is invalid.  Instead, it spits out the un-transformed invalid input, as if it was valid.

Am I missing something, or is this a bug?