From 9e4a9fec6b6311be5280a7861aad014e8465a749 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Mon, 13 Apr 2015 12:52:58 +0200 Subject: [PATCH] =?utf8?q?SL::DB::BackgroundJob:=20refactoring=20von=20set?= =?utf8?q?=5Fdata=20f=C3=BCr=20mehr=20programmatische=20Sicherheit?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit $self->data kann durchaus leer sein, und dann gibt YAML::Load schlicht einen leeren String und keine Hashref zurück. Daher $self->data_as_hash benutzen, das bereits für die meisten Fälle gewappnet ist. Außerdem einfachere Hash-Zuweisung. --- SL/DB/BackgroundJob.pm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/SL/DB/BackgroundJob.pm b/SL/DB/BackgroundJob.pm index 10e319ba3..2040297b1 100644 --- a/SL/DB/BackgroundJob.pm +++ b/SL/DB/BackgroundJob.pm @@ -84,9 +84,10 @@ sub data_as_hash { sub set_data { my ($self, %data) = @_; - my $data = YAML::Load($self->data); - $data->{$_} = $data{$_} for keys %data; - $self->data(YAML::Dump($data)); + $self->data(YAML::Dump({ + %{ $self->data_as_hash }, + %data, + })); $self; } -- 2.20.1