@@ -431,6 +431,43 @@ function upgrade() {
431431 /* Skip this if we're on the latest version */
432432 if ( version_compare ( $ current_version , $ this ->version , '< ' ) ) {
433433
434+ /* Data in database is unsecapped in 1.8 */
435+ if ( version_compare ( $ current_version , '1.8 ' , '< ' ) ) {
436+
437+ $ tables = array ();
438+
439+ if ( $ wpdb ->get_var ( "SHOW TABLES LIKE ' $ wpdb ->snippets ' " ) === $ wpdb ->snippets ) {
440+ $ tables [] = $ wpdb ->snippets ;
441+ }
442+
443+ if ( is_multisite () && is_main_site () && $ wpdb ->get_var ( "SHOW TABLES LIKE ' $ wpdb ->ms_snippets ' " ) === $ wpdb ->ms_snippets ) {
444+ $ tables [] = $ wpdb ->ms_snippets ;
445+ }
446+
447+ foreach ( $ tables as $ table ) {
448+ $ snippets = $ wpdb ->get_results ( "SELECT * FROM $ table " );
449+
450+ foreach ( $ snippets as $ snippet ) {
451+
452+ $ snippet ->name = esc_sql ( htmlspecialchars_decode ( stripslashes ( $ snippet ->name ) ) );
453+ $ snippet ->code = esc_sql ( htmlspecialchars_decode ( stripslashes ( $ snippet ->code ) ) );
454+ $ snippet ->description = esc_sql ( htmlspecialchars_decode ( stripslashes ( $ snippet ->description ) ) );
455+
456+ $ wpdb ->update ( $ table ,
457+ array (
458+ 'name ' => $ snippet ->name ,
459+ 'code ' => $ snippet ->code ,
460+ 'description ' => $ snippet ->description
461+ ),
462+ array ( 'id ' => $ snippet ->id ),
463+ array ( '%s ' ),
464+ array ( '%d ' )
465+ );
466+ }
467+ } // end $table foreach
468+
469+ } // end < 1.8 version check
470+
434471 /* Register the capabilities once only */
435472 if ( version_compare ( $ current_version , '1.5 ' , '< ' ) ) {
436473 $ this ->setup_roles ( true );
@@ -677,10 +714,10 @@ public function escape_snippet_data( $snippet ) {
677714 $ snippet ->code = rtrim ( $ snippet ->code , '?> ' );
678715
679716 /* escape the data */
680- $ snippet ->name = esc_sql ( htmlspecialchars ( $ snippet ->name ) );
681- $ snippet ->description = esc_sql ( htmlspecialchars ( $ snippet ->description ) );
682- $ snippet ->code = esc_sql ( htmlspecialchars ( $ snippet ->code ) );
683- $ snippet ->id = absint ( $ snippet ->id );
717+ $ snippet ->name = esc_sql ( $ snippet ->name );
718+ $ snippet ->description = esc_sql ( $ snippet ->description );
719+ $ snippet ->code = esc_sql ( $ snippet ->code );
720+ $ snippet ->id = absint ( $ snippet ->id );
684721
685722 return apply_filters ( 'code_snippets/escape_snippet_data ' , $ snippet );
686723 }
@@ -699,9 +736,9 @@ public function unescape_snippet_data( $snippet ) {
699736
700737 $ snippet = $ this ->build_snippet_object ( $ snippet );
701738
702- $ snippet ->name = htmlspecialchars_decode ( stripslashes ( $ snippet ->name ) );
703- $ snippet ->code = htmlspecialchars_decode ( stripslashes ( $ snippet ->code ) );
704- $ snippet ->description = htmlspecialchars_decode ( stripslashes ( $ snippet ->description ) );
739+ $ snippet ->name = stripslashes ( $ snippet ->name );
740+ $ snippet ->code = stripslashes ( $ snippet ->code );
741+ $ snippet ->description = stripslashes ( $ snippet ->description );
705742
706743 return apply_filters ( 'code_snippets/unescape_snippet_data ' , $ snippet );
707744 }
0 commit comments