Subject: bug#20095: closed (Re: sed conditional branching)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 10 May 2015 17:17:02 +0000

Your bug report

#20095: conditional branching

which was filed against the sed package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
20095: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20095
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: sed conditional branching
From: Jim Meyering <[email-masked]>
To: Erik Popp <[email-masked]>, [email-masked]
Date: Sun, 10 May 2015 10:16:05 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

tags 20095 notabug
thanks

Davide Brini's analysis at https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20095#8
is correct. "t" works like this:

't LABEL'
     Branch to LABEL only if there has been a successful 's'ubstitution
     since the last input line was read or conditional branch was taken.
     The LABEL may be omitted, in which case the next cycle is started.

yet your script expects it to work differently.

Hence, I'm marking this issue as a non-bug and closing it.
However, you are welcome to reply here; any comments will
be logged at https://bugs.gnu.org/20095.

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?