mirror of
https://gitlab.com/mbunkus/mkvtoolnix.git
synced 2024-10-22 07:21:21 +00:00
build system: protect digest calls from re-entry
The code for Ruby's Digest module seems to be racy wrt. multi-threading. See e.g. https://github.com/aws/aws-sdk-ruby/issues/525 for details.
This commit is contained in:
parent
7b9abff716
commit
d6707da459
1
Rakefile
1
Rakefile
@ -47,6 +47,7 @@ $build_system_modules = {}
|
||||
$have_gtest = (c(:GTEST_TYPE) == "system") || (c(:GTEST_TYPE) == "internal")
|
||||
$gtest_apps = []
|
||||
|
||||
require_relative "rake.d/digest"
|
||||
require_relative "rake.d/helpers"
|
||||
require_relative "rake.d/target"
|
||||
require_relative "rake.d/application"
|
||||
|
7
rake.d/digest.rb
Normal file
7
rake.d/digest.rb
Normal file
@ -0,0 +1,7 @@
|
||||
require "digest"
|
||||
|
||||
$digest_mutex = Mutex.new
|
||||
|
||||
def sha1_hexdigest data
|
||||
$digest_mutex.synchronize { Digest::SHA1.hexdigest(data) }
|
||||
end
|
@ -1,7 +1,5 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
require "digest"
|
||||
|
||||
class FormatStringVerifier
|
||||
def verify file_name
|
||||
language = file_name.gsub(%r{.*/|\.po$}, '')
|
||||
@ -35,7 +33,7 @@ class FormatStringVerifier
|
||||
reject(&:nil?).
|
||||
each do |msgid|
|
||||
format_types.each do |type|
|
||||
sha1 = Digest::SHA1.hexdigest "#{type}:#{msgid}:#{msgstr}"
|
||||
sha1 = sha1_hexdigest "#{type}:#{msgid}:#{msgstr}"
|
||||
|
||||
next if to_ignore.key?(language) && to_ignore[language].include?(sha1)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user