Archive for September 20, 2022

Tuesday, September 20, 2022

Zeroing Freed Memory

Apple:

The system memory allocator free operation zeroes out all deallocated blocks in iOS 16.1 beta or later. Invalid accesses to free memory might result in new crashes or corruption, including NULL-pointer dereferences and non-zero memory being returned from calloc.

There’s a corresponding change in macOS Ventura.

David Smith:

malloc folks spent a while optimizing to compensate [for the performance regression]

mvb:

There’s also a performance improvement, because it makes the memory compressor work better

Marco Arment:

I love this, frankly, but I bet it’s going to uncover a good deal of bugs and crashes that worked until now because of luck.

Hopefully you aren’t relying on any abandoned software.

Update (2022-09-22): See also: Hacker News.

David Anson:

Any reason Apple couldn’t restrict the new memory zeroing behavior to newly-compiled binaries to avoid the risk of breaking legacy software?

I was wondering about that, too. Usually, though not always, potentially breaking changes like this are called out in the release notes as taking effect when you compile with a new SDK. That was not the case here, so I assume there’s no linked-on-or-after check.

Update (2022-09-23): cesarb:

I wonder how long until programs start to accidentally depend on it, the same way some programs currently accidentally depend on freeing memory not immediately overwriting it.

For instance, I can imagine a program which accidentally follows a dangling pointer to an already freed structure, and reads another pointer from within that structure, not crashing because it ends up checking this later pointer against NULL… until the stars align and the memory used by the freed structure has been returned to the operating system, or overwritten by a later allocation.

Update (2022-10-27): Apple:

In apps built with the macOS 13 SDK or later[…]

App Store Prices to Increase in Europe

Apple:

As early as October 5, 2022, prices of apps and in-app purchases (excluding auto-renewable subscriptions) on the App Store will increase in Chile, Egypt, Japan, Malaysia, Pakistan, Poland, South Korea, Sweden, Vietnam, and all territories that use the euro currency. In Vietnam, these increases also reflect new regulations for Apple to collect and remit applicable taxes, being value added tax (VAT) and corporate income tax (CIT) at 5% rates respectively.

Joe Rossignol:

The increases are the result of the euro’s weakness against the U.S. dollar currently.

The way Apple does this has always seemed kind of strange to me. There’s no way—as there is with some other payment processors—to customize prices so that they make sense for your product in different regions. When the dollar is strong, isn’t that when European customers would be more sensitive to the prices they pay for software? And Apple changes the pricing tiers for some exchange rate and tax changes but not for others.

Tim Sweeney:

This highlights Apple’s monopoly pricing power and also their seldom-discussed practice of fixing the ratio of app prices across regions: developers choose the US price, then Apple unilaterally sets the price in all other territories.

Compare to Steam and Epic Games Store where developers choose their own regional pricing strategies in response to local competition and differing market conditions across specialized categories of games and apps.

Previously:

Update (2022-09-23): Florian Mueller:

Now, an app developer with most of its customers in the eurozone would presumably think very hard before increasing the entry-level price from €0.99 to €1.19, given that it’s psychologically very advantageous to stay below €1. That is, of course, why Apple has waited for a while, and now goes substantially beyond €1: once you go over that threshold, whether you charge €1.09 or €1.19 doesn’t really make much of a difference for demand. But again, many app developers might actually prefer to just keep their euro prices below those psychologically critical numbers.

[…]

This issue of Apple deciding on currency conversion even came up in the Epic Games v. Apple litigation in the Northern District of California, the antitrust case that will be heard by the United States Court of Appeals for the Ninth Circuit in one month from tomorrow, with the Department of Justice supporting Epic. Judge Yvonne Gonzalez-Rogers, who got a whole lot wrong, understood the problem at least in part[…]

Update (2022-10-06): Tim Sweeney:

Developers don’t want to raise their app prices in the EU and UK. Consumers don’t want app price increases in the EU and UK. Central banks fighting inflation don’t want app price inflation. But Apple is raising developers’ prices against developers’ wishes.

Inflation + recession = people are forced to spend more on essential goods and therefore are spending less on optional purchases. Not a good time to raise prices on digital items.