vlc/vlc-2.2 | branch: master | David Fuhrmann <dfuhrm...@videolan.org> | Tue Aug 22 15:49:56 2017 +0200| [ae2567dbdfe7ee9a1eaaf7e6dcc5dbec5f45c68f] | committer: David Fuhrmann
sparkle: Fix longstanding crash in automatic update search Our patch to sparkle introduced a crash during runtime, as key and object was swapped and the key could not be copied. The relevant code path was in SUBasicUpdateDriver.m -> didFindValidUpdate, which crashed if it was called. This code path is used in the following circumstances: - The user configured sparkle to automatically download and install updates (this is an option you can change if an update is announced to the user). - An update is actually available - The automatic update check tries to search for an update and finds the update. User behaviour: - Update check is performed every 24h, which crash VLC once performed and update was found. - Before the crash, last update check timestamp is saved still. - VLC now works for 24 h without update related crash. - If VLC is started after 24 h again, a new update check is performed and VLC crashes again. fixes #18148 > http://git.videolan.org/gitweb.cgi/vlc/vlc-2.2.git/?a=commit;h=ae2567dbdfe7ee9a1eaaf7e6dcc5dbec5f45c68f --- contrib/src/sparkle/rules.mak | 1 - .../sparkle/sparkle-fix-compilation-on-snowleopard.patch | 6 +++--- .../sparkle-fix-runtime-exception-on-snowleopard.patch | 13 ------------- 3 files changed, 3 insertions(+), 17 deletions(-) diff --git a/contrib/src/sparkle/rules.mak b/contrib/src/sparkle/rules.mak index f4426674d0..7e045ed7b6 100644 --- a/contrib/src/sparkle/rules.mak +++ b/contrib/src/sparkle/rules.mak @@ -15,7 +15,6 @@ $(TARBALLS)/Sparkle-$(SPARKLE_VERSION).zip: sparkle: Sparkle-$(SPARKLE_VERSION).zip .sum-sparkle $(UNPACK) $(APPLY) $(SRC)/sparkle/sparkle-fix-compilation-on-snowleopard.patch - $(APPLY) $(SRC)/sparkle/sparkle-fix-runtime-exception-on-snowleopard.patch $(APPLY) $(SRC)/sparkle/sparkle-disable-redirects-to-non-HTTP-URLs-in-release-notes.patch $(APPLY) $(SRC)/sparkle/sparkle-prevent-inclusion-of-local-files-via-file-XML-entiti.patch $(APPLY) $(SRC)/sparkle/sparkle-macosx106.patch diff --git a/contrib/src/sparkle/sparkle-fix-compilation-on-snowleopard.patch b/contrib/src/sparkle/sparkle-fix-compilation-on-snowleopard.patch index 828c3e96b2..955b8a7c02 100644 --- a/contrib/src/sparkle/sparkle-fix-compilation-on-snowleopard.patch +++ b/contrib/src/sparkle/sparkle-fix-compilation-on-snowleopard.patch @@ -72,7 +72,7 @@ diff -ru sparkle/SUBasicUpdateDriver.m sparkle-fixed/SUBasicUpdateDriver.m [[updater delegate] updater:updater didFinishLoadingAppcast:ac]; - NSDictionary *userInfo = (ac != nil) ? @{SUUpdaterAppcastNotificationKey : ac} : nil; -+ NSDictionary *userInfo = (ac != nil) ? [NSDictionary dictionaryWithObject:SUUpdaterAppcastNotificationKey forKey:ac] : nil; ++ NSDictionary *userInfo = (ac != nil) ? [NSDictionary dictionaryWithObject:ac forKey:SUUpdaterAppcastNotificationKey] : nil; [[NSNotificationCenter defaultCenter] postNotificationName:SUUpdaterDidFinishLoadingAppCastNotification object:updater userInfo:userInfo]; SUAppcastItem *item = nil; @@ -81,7 +81,7 @@ diff -ru sparkle/SUBasicUpdateDriver.m sparkle-fixed/SUBasicUpdateDriver.m if ([[updater delegate] respondsToSelector:@selector(updater:didFindValidUpdate:)]) [[updater delegate] updater:updater didFindValidUpdate:updateItem]; - NSDictionary *userInfo = (updateItem != nil) ? @{SUUpdaterAppcastItemNotificationKey : updateItem} : nil; -+ NSDictionary *userInfo = (updateItem != nil) ? [NSDictionary dictionaryWithObject:SUUpdaterAppcastItemNotificationKey forKey:updateItem] : nil; ++ NSDictionary *userInfo = (updateItem != nil) ? [NSDictionary dictionaryWithObject:updateItem forKey:SUUpdaterAppcastItemNotificationKey] : nil; [[NSNotificationCenter defaultCenter] postNotificationName:SUUpdaterDidFinishLoadingAppCastNotification object:updater userInfo:userInfo]; [self downloadUpdate]; } @@ -93,7 +93,7 @@ diff -ru sparkle/SUProbingUpdateDriver.m sparkle-fixed/SUProbingUpdateDriver.m if ([[updater delegate] respondsToSelector:@selector(updater:didFindValidUpdate:)]) [[updater delegate] updater:updater didFindValidUpdate:updateItem]; - NSDictionary *userInfo = (updateItem != nil) ? @{SUUpdaterAppcastItemNotificationKey : updateItem} : nil; -+ NSDictionary *userInfo = (updateItem != nil) ? [NSDictionary dictionaryWithObject:SUUpdaterAppcastItemNotificationKey forKey:updateItem] : nil; ++ NSDictionary *userInfo = (updateItem != nil) ? [NSDictionary dictionaryWithObject:updateItem forKey:SUUpdaterAppcastItemNotificationKey] : nil; [[NSNotificationCenter defaultCenter] postNotificationName:SUUpdaterDidFindValidUpdateNotification object:updater userInfo:userInfo]; [self abortUpdate]; } diff --git a/contrib/src/sparkle/sparkle-fix-runtime-exception-on-snowleopard.patch b/contrib/src/sparkle/sparkle-fix-runtime-exception-on-snowleopard.patch deleted file mode 100644 index 17f519c2a5..0000000000 --- a/contrib/src/sparkle/sparkle-fix-runtime-exception-on-snowleopard.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -ru sparkle/SUBasicUpdateDriver.m sparkled/SUBasicUpdateDriver.m ---- sparkle/SUBasicUpdateDriver.m 2014-11-05 00:05:47.000000000 +0100 -+++ sparkled-fixed/SUBasicUpdateDriver.m 2014-11-04 23:48:19.000000000 +0100 -@@ -105,9 +105,6 @@ - { - if ([[updater delegate] respondsToSelector:@selector(updater:didFinishLoadingAppcast:)]) - [[updater delegate] updater:updater didFinishLoadingAppcast:ac]; -- -- NSDictionary *userInfo = (ac != nil) ? [NSDictionary dictionaryWithObject:SUUpdaterAppcastNotificationKey forKey:ac] : nil; -- [[NSNotificationCenter defaultCenter] postNotificationName:SUUpdaterDidFinishLoadingAppCastNotification object:updater userInfo:userInfo]; - - SUAppcastItem *item = nil; - _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits