Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Jun 2009 08:30:40 -0700
From:      Gary Kline <kline@thought.org>
To:        Mel Flynn <mel.flynn+fbsd.questions@mailing.thruhere.net>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: feedback, comments on this php-delimiter scrubbing program?
Message-ID:  <20090616153040.GA40540@thought.org>
In-Reply-To: <200906151857.45945.mel.flynn%2Bfbsd.questions@mailing.thruhere.net>
References:  <20090616012114.GA38011@thought.org> <200906151857.45945.mel.flynn%2Bfbsd.questions@mailing.thruhere.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jun 15, 2009 at 06:57:45PM -0800, Mel Flynn wrote:
> On Monday 15 June 2009 17:21:16 Gary Kline wrote:
> 
> > Encl: dephp.c, test
>          case '?':
>             ch = getchar();
>             while (1)
>             {
>                if (ch == '?' && (ch = getchar()) == '>')
>                {
>                   break;
>                } 
>                else
>                {
>                   ch = getchar();
>                }
>             }
>             break;
> 
> As has been hinted before you're not handling the EOF case. Files like:
> <?php
> class foo
> {
> 	function __construct() { echo 'foo'; };
> };
> 
> Are perfectly valid php files and actually preferred for included files, 
> rather then a terminating ?>, because one can start filling the output by 
> trailing whitespace before EOF and thus not set any header() anymore. The 
> above code will wait indefinitely for the next char or spin like mad if you're 
> using non-blocking IO.


	YUP.

	I thought my initial getchar() != EOF would handle that.  
	But then there's that do-forever loop.  I remember Jeffrey's
	post and tried a case 'EOF' or case '-1';  thar gives me
	compiler errors.  

	Suggestions?


> 
> You should really take the pointers from Jeffrey Goldberg and record states 
> and decide based on the state, rather then inlined switch statements, if only 
> for readability.
> 
> You're also in trouble with <?xml, but that's an entirely different beast and 
> you might actually be doing the right thing from your usage perspective.
> -- 
> Mel

-- 
 Gary Kline  kline@thought.org  http://www.thought.org  Public Service Unix
        http://jottings.thought.org   http://transfinite.thought.org
       For FBSD list: http://transfinite.thought.org/slicejourney.php
    The 4.98a release of Jottings: http://jottings.thought.org/index.php




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090616153040.GA40540>