From ace6728970b520f219907887cd7a90010239c2a1 Mon Sep 17 00:00:00 2001 From: Dylan Hardison Date: Tue, 19 Jan 2016 22:57:54 -0500 Subject: Bug 1236161 - when converting a BMP attachment to PNG fails a zero byte attachment is created --- scripts/fix-attachment-sizes.pl | 42 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 scripts/fix-attachment-sizes.pl (limited to 'scripts/fix-attachment-sizes.pl') diff --git a/scripts/fix-attachment-sizes.pl b/scripts/fix-attachment-sizes.pl new file mode 100644 index 000000000..a50e241ce --- /dev/null +++ b/scripts/fix-attachment-sizes.pl @@ -0,0 +1,42 @@ +#!/usr/bin/perl -w + +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# This Source Code Form is "Incompatible With Secondary Licenses", as +# defined by the Mozilla Public License, v. 2.0. + +use strict; +use feature 'say'; + +use FindBin qw( $RealBin ); +use lib "$RealBin/.."; +use lib "$RealBin/../lib"; + +use Bugzilla; +use Bugzilla::Constants; + +Bugzilla->usage_mode(USAGE_MODE_CMDLINE); + +my $dbh = Bugzilla->dbh; + +$dbh->bz_start_transaction(); +my $attachment_sizes = $dbh->selectall_arrayref(q{ + SELECT attachments.attach_id, length(thedata) + FROM attach_data + INNER JOIN attachments ON attachments.attach_id = attach_data.id + WHERE attachments.attach_size != 0 + AND attachments.mimetype = 'image/png' + AND length(thedata) != attachments.attach_size }); +say "Found ", scalar @$attachment_sizes, " attachments to fix"; + +foreach my $attachment_size (@$attachment_sizes) { + say "Setting size for $attachment_size->[0] to $attachment_size->[1]"; + + $dbh->do("UPDATE attachments SET attach_size = ? WHERE attach_id = ?", undef, + $attachment_size->[1], + $attachment_size->[0]); +} + +$dbh->bz_commit_transaction(); \ No newline at end of file -- cgit v1.2.3-24-g4f1b