[wp-trac] [WordPress Trac] #32640: wp-db.php bug when activating plugin ("unexpected output" During Plugin Activation)

WordPress Trac noreply at wordpress.org
Sun Jun 14 02:54:13 UTC 2015


#32640: wp-db.php bug when activating plugin ("unexpected output" During Plugin
Activation)
---------------------------+------------------------------
 Reporter:  s1nc1tycyph3r  |       Owner:
     Type:  defect (bug)   |      Status:  new
 Priority:  normal         |   Milestone:  Awaiting Review
Component:  Database       |     Version:  4.2.2
 Severity:  normal         |  Resolution:
 Keywords:                 |     Focuses:
---------------------------+------------------------------
Description changed by SergeyBiryukov:

Old description:

> I'm A Developer Writing my latest wordpress plugin and discovered a bug
> with the /include/wp-db.php file in the latest version of wp!
>
> upon activation of my plugin i'm developing i get the following message
> on the plugin activation screen
>
> The plugin generated 9520 characters of unexpected output during
> activation. If you notice “headers already sent” messages, problems with
> syndication feeds or other issues, try deactivating or removing this
> plugin.
>
> and i get the following debug errors
> when using the https://wordpress.org/plugins/debug-plugin-activation-
> errors/
> plugin
>
> Warning:  Invalid argument supplied for foreach() in
> /home/tispgu/public_html/wp-testdomain/wp-includes/wp-db.php on line 1987
>

>
> Warning:  Invalid argument supplied for foreach() in
> /home/tispgu/public_html/wp-testdomain/wp-includes/wp-db.php on line 2020
>

>
> Warning:  Invalid argument supplied for foreach() in
> /home/tispgu/public_html/wp-testdomain/wp-includes/wp-db.php on line 2050
>

>
> Warning:  Invalid argument supplied for foreach() in
> /home/tispgu/public_html/wp-testdomain/wp-includes/wp-db.php on line 2593
>

>
> Warning:  Invalid argument supplied for foreach() in
> /home/tispgu/public_html/wp-testdomain/wp-includes/wp-db.php on line 1824
>

>
> Warning:  array_keys() expects parameter 1 to be array, null given in
> /home/tispgu/public_html/wp-testdomain/wp-includes/wp-db.php on line 1829
>

>
> Warning:  implode() [function.implode]: Invalid arguments passed in
> /home/tispgu/public_html/wp-testdomain/wp-includes/wp-db.php on line 1829
>
> based on this error report i was able to determine the cause and location
> of the plugin activation issue to be with the /wp-includes/wp-db.php file
> i was also able to resolve this bug by fixing the code in a couple of
> functions within that file
>

> here are the changes i made to the code:
>
> function code is contained in: function _insert_replace_helper( $table,
> $data, $format = null, $type = 'INSERT' )
>
> line 1814
> original code:
>                 if ( ! in_array( strtoupper( $type ), array( 'REPLACE',
> 'INSERT' ) ) ) {
>                         return false;
>                 }
>
> line 1814
> updated code:
>                 if ( !in_array( strtoupper( $type ), array( 'REPLACE',
> 'INSERT' ) ) || !is_array( $data )) {
>                         return false;
>                 }
>

> function code is contained in: function delete( $table, $where,
> $where_format = null )
>
> line 1907
> original code:
>                 if ( ! is_array( $where ) ) {
>                         return false;
>                 }
> line 1907
> updated code
>                 if (!is_array( $where ) ) {
>                         return false;
>                 }

New description:

 I'm A Developer Writing my latest wordpress plugin and discovered a bug
 with the /include/wp-db.php file in the latest version of wp!

 upon activation of my plugin i'm developing i get the following message on
 the plugin activation screen

 The plugin generated 9520 characters of unexpected output during
 activation. If you notice “headers already sent” messages, problems with
 syndication feeds or other issues, try deactivating or removing this
 plugin.

 and i get the following debug errors
 when using the https://wordpress.org/plugins/debug-plugin-activation-
 errors/
 plugin
 {{{
 Warning:  Invalid argument supplied for foreach() in
 /home/tispgu/public_html/wp-testdomain/wp-includes/wp-db.php on line 1987
 Warning:  Invalid argument supplied for foreach() in
 /home/tispgu/public_html/wp-testdomain/wp-includes/wp-db.php on line 2020
 Warning:  Invalid argument supplied for foreach() in
 /home/tispgu/public_html/wp-testdomain/wp-includes/wp-db.php on line 2050
 Warning:  Invalid argument supplied for foreach() in
 /home/tispgu/public_html/wp-testdomain/wp-includes/wp-db.php on line 2593
 Warning:  Invalid argument supplied for foreach() in
 /home/tispgu/public_html/wp-testdomain/wp-includes/wp-db.php on line 1824
 Warning:  array_keys() expects parameter 1 to be array, null given in
 /home/tispgu/public_html/wp-testdomain/wp-includes/wp-db.php on line 1829
 Warning:  implode() [function.implode]: Invalid arguments passed in
 /home/tispgu/public_html/wp-testdomain/wp-includes/wp-db.php on line 1829
 }}}
 based on this error report i was able to determine the cause and location
 of the plugin activation issue to be with the /wp-includes/wp-db.php file
 i was also able to resolve this bug by fixing the code in a couple of
 functions within that file


 here are the changes i made to the code:

 function code is contained in: `function _insert_replace_helper( $table,
 $data, $format = null, $type = 'INSERT' )`

 line 1814
 original code:
 {{{
                 if ( ! in_array( strtoupper( $type ), array( 'REPLACE',
 'INSERT' ) ) ) {
                         return false;
                 }
 }}}
 line 1814
 updated code:
 {{{
                 if ( !in_array( strtoupper( $type ), array( 'REPLACE',
 'INSERT' ) ) || !is_array( $data )) {
                         return false;
                 }
 }}}

 function code is contained in: `function delete( $table, $where,
 $where_format = null )`

 line 1907
 original code:
 {{{
                 if ( ! is_array( $where ) ) {
                         return false;
                 }
 }}}
 line 1907
 updated code
 {{{
                 if (!is_array( $where ) ) {
                         return false;
                 }
 }}}

--

--
Ticket URL: <https://core.trac.wordpress.org/ticket/32640#comment:1>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list