/[smeserver]/rpms/php/sme8/php-5.3.3-CVE-2011-1469.patch
ViewVC logotype

Annotation of /rpms/php/sme8/php-5.3.3-CVE-2011-1469.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (hide annotations) (download)
Thu Nov 3 22:54:19 2011 UTC (13 years, 1 month ago) by slords
Branch: MAIN
CVS Tags: php-5_3_3-15_el5_sme, php-5_3_3-16_el5_sme, php-5_3_3-14_el5_sme, php-5_3_3-1_el5_sme_6, php-5_3_3-13_el5_sme_1, php-5_3_3-1_el5_sme_3, php-5_3_3-13_el5_sme_2, php-5_3_3-17_el5_sme, php-5_3_3-13_el5_sme, HEAD
Changes since 1.1: +120 -0 lines
* Thu Nov 2 2011 Shad L. Lords <slords@mail.com> - 5.3.3-1.3.sme
- Obsolete php-domxml and php-dom [SME: 6733]
- Update Obsoletes and Conflicts [SME: 6436]

1 slords 1.2
2     https://bugzilla.redhat.com/show_bug.cgi?id=690905
3    
4     http://svn.php.net/viewvc/?view=revision&amp;revision=308734
5    
6     --- php-5.3.3/ext/standard/ftp_fopen_wrapper.c.cve1469
7     +++ php-5.3.3/ext/standard/ftp_fopen_wrapper.c
8     @@ -72,6 +72,12 @@
9     #define FTPS_ENCRYPT_DATA 1
10     #define GET_FTP_RESULT(stream) get_ftp_result((stream), tmp_line, sizeof(tmp_line) TSRMLS_CC)
11    
12     +typedef struct _php_ftp_dirstream_data {
13     + php_stream *datastream;
14     + php_stream *controlstream;
15     + php_stream *dirstream;
16     +} php_ftp_dirstream_data;
17     +
18     /* {{{ get_ftp_result
19     */
20     static inline int get_ftp_result(php_stream *stream, char *buffer, size_t buffer_size TSRMLS_DC)
21     @@ -97,12 +103,12 @@ static int php_stream_ftp_stream_stat(ph
22     */
23     static int php_stream_ftp_stream_close(php_stream_wrapper *wrapper, php_stream *stream TSRMLS_DC)
24     {
25     - php_stream *controlstream = (php_stream *)stream->wrapperdata;
26     + php_stream *controlstream = stream->wrapperthis;
27    
28     if (controlstream) {
29     php_stream_write_string(controlstream, "QUIT\r\n");
30     php_stream_close(controlstream);
31     - stream->wrapperdata = NULL;
32     + stream->wrapperthis = NULL;
33     }
34     return 0;
35     }
36     @@ -187,7 +193,7 @@ static php_stream *php_ftp_fopen_connect
37     || php_stream_xport_crypto_enable(stream, 1 TSRMLS_CC) < 0) {
38     php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "Unable to activate SSL mode");
39     php_stream_close(stream);
40     - stream = NULL;
41     + stream->wrapperthis = NULL;
42     goto connect_errexit;
43     }
44    
45     @@ -564,7 +570,7 @@ php_stream * php_stream_url_wrap_ftp(php
46     }
47    
48     /* remember control stream */
49     - datastream->wrapperdata = (zval *)stream;
50     + datastream->wrapperthis = stream;
51    
52     php_url_free(resource);
53     return datastream;
54     @@ -588,11 +594,13 @@ errexit:
55     static size_t php_ftp_dirstream_read(php_stream *stream, char *buf, size_t count TSRMLS_DC)
56     {
57     php_stream_dirent *ent = (php_stream_dirent *)buf;
58     - php_stream *innerstream = (php_stream *)stream->abstract;
59     + php_stream *innerstream;
60     size_t tmp_len;
61     char *basename;
62     size_t basename_len;
63    
64     + innerstream = ((php_ftp_dirstream_data *)stream->abstract)->datastream;
65     +
66     if (count != sizeof(php_stream_dirent)) {
67     return 0;
68     }
69     @@ -636,13 +644,18 @@ static size_t php_ftp_dirstream_read(php
70     */
71     static int php_ftp_dirstream_close(php_stream *stream, int close_handle TSRMLS_DC)
72     {
73     - php_stream *innerstream = (php_stream *)stream->abstract;
74     + php_ftp_dirstream_data *data = stream->abstract;
75    
76     - if (innerstream->wrapperdata) {
77     - php_stream_close((php_stream *)innerstream->wrapperdata);
78     - innerstream->wrapperdata = NULL;
79     - }
80     - php_stream_close((php_stream *)stream->abstract);
81     + /* close control connection */
82     + if (data->controlstream) {
83     + php_stream_close(data->controlstream);
84     + data->controlstream = NULL;
85     + }
86     + /* close data connection */
87     + php_stream_close(data->datastream);
88     + data->datastream = NULL;
89     +
90     + efree(data);
91     stream->abstract = NULL;
92    
93     return 0;
94     @@ -668,6 +681,7 @@ static php_stream_ops php_ftp_dirstream_
95     php_stream * php_stream_ftp_opendir(php_stream_wrapper *wrapper, char *path, char *mode, int options, char **opened_path, php_stream_context *context STREAMS_DC TSRMLS_DC)
96     {
97     php_stream *stream, *reuseid, *datastream = NULL;
98     + php_ftp_dirstream_data *dirsdata;
99     php_url *resource = NULL;
100     int result = 0, use_ssl, use_ssl_on_data = 0;
101     char *hoststart = NULL, tmp_line[512];
102     @@ -727,11 +741,14 @@ php_stream * php_stream_ftp_opendir(php_
103     goto opendir_errexit;
104     }
105    
106     - /* remember control stream */
107     - datastream->wrapperdata = (zval *)stream;
108     -
109     php_url_free(resource);
110     - return php_stream_alloc(&php_ftp_dirstream_ops, datastream, 0, mode);
111     +
112     + dirsdata = emalloc(sizeof *dirsdata);
113     + dirsdata->datastream = datastream;
114     + dirsdata->controlstream = stream;
115     + dirsdata->dirstream = php_stream_alloc(&php_ftp_dirstream_ops, dirsdata, 0, mode);
116     +
117     + return dirsdata->dirstream;
118    
119     opendir_errexit:
120     if (resource) {

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed