diff options
author | Matt Beckett <beck24@gmail.com> | 2013-10-10 13:29:50 -0700 |
---|---|---|
committer | Paweł Sroka <srokap@gmail.com> | 2013-10-27 13:07:37 +0100 |
commit | 1e884c6abe933468ecfa035780bd3e9ff5e1ad61 (patch) | |
tree | 1775be41fe40c8b73c800f0c918e7d49503c2f68 /engine | |
parent | 882866430efa4374206fc7289e2a7ab70ac5abf8 (diff) | |
download | elgg-1e884c6abe933468ecfa035780bd3e9ff5e1ad61.tar.gz elgg-1e884c6abe933468ecfa035780bd3e9ff5e1ad61.tar.bz2 |
#5952 - fix infinite loop when disabling > 50 annotations or metadata
Diffstat (limited to 'engine')
-rw-r--r-- | engine/lib/annotations.php | 6 | ||||
-rw-r--r-- | engine/lib/metadata.php | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/engine/lib/annotations.php b/engine/lib/annotations.php index 124e67e0f..5e9b530de 100644 --- a/engine/lib/annotations.php +++ b/engine/lib/annotations.php @@ -249,9 +249,13 @@ function elgg_disable_annotations(array $options) { if (!elgg_is_valid_options_for_batch_operation($options, 'annotations')) { return false; } + + // if we can see hidden (disabled) we need to use the offset + // otherwise we risk an infinite loop if there are more than 50 + $inc_offset = access_get_show_hidden_status(); $options['metastring_type'] = 'annotations'; - return elgg_batch_metastring_based_objects($options, 'elgg_batch_disable_callback', false); + return elgg_batch_metastring_based_objects($options, 'elgg_batch_disable_callback', $inc_offset); } /** diff --git a/engine/lib/metadata.php b/engine/lib/metadata.php index d2f8d4cd4..fdb1b85f6 100644 --- a/engine/lib/metadata.php +++ b/engine/lib/metadata.php @@ -333,9 +333,13 @@ function elgg_disable_metadata(array $options) { } elgg_get_metadata_cache()->invalidateByOptions('disable', $options); + + // if we can see hidden (disabled) we need to use the offset + // otherwise we risk an infinite loop if there are more than 50 + $inc_offset = access_get_show_hidden_status(); $options['metastring_type'] = 'metadata'; - return elgg_batch_metastring_based_objects($options, 'elgg_batch_disable_callback', false); + return elgg_batch_metastring_based_objects($options, 'elgg_batch_disable_callback', $inc_offset); } /** |