Dear team core,

i found a bug in the symfony's deployment system - version 1.3 and 1.4 -
that occurs only on Windows environment.

Starting from version 1.3 the sfFileSystem Class began to use the
proc_open() function instead the passthru() function in symfony 1.2. See:
sfFilesystem.class.php<http://trac.symfony-project.org/browser/branches/1.4/lib/task/sfFilesystem.class.php>

You can try to reproduce this error deploying a project enabling the
"--progress" argument (rsync). Some times, the STDERR stream of the
proc_open() is filled and it causes a freeze in the STDOUT stream that
consequently generates a infinity loop on Windows.

This problem can be fixed changing the pipe access mode from "w" to "a" - see
the line 291 of
sfFilesystem.class.php<http://trac.symfony-project.org/browser/branches/1.4/lib/task/sfFilesystem.class.php>.
Explaining: In the "w mode" the pointer is placed at the beginning of the
file. In the "a mode" the pointer is placed at the end of the file. It seems
that the proc_open() can't read the pipe STDOUT when the STDERR is filled
because the pointer is placed at the beginning of the file. The solution
then is place the pointer at the end of the file.  Note that this problem is
a PHP issue.

Again, this only occurs on Windows. Well, it would be nice if this
correction was fixed in the next release.


I'm sending the sfFilesystem.class.php fixed.



Please, write me if you have any questions.


best regards.


Augusto Morais

-- 
If you want to report a vulnerability issue on symfony, please send it to 
security at symfony-project.com

You received this message because you are subscribed to the Google
Groups "symfony developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/symfony-devs?hl=en

To unsubscribe, reply using "remove me" as the subject.

Reply via email to