Under The Microscope


Archive for March, 2008

Tune In With Radioshift 1.0.5

Radioshift IconOur newest application Radioshift hasn’t seen an update in a couple of months, but today we’re happy to unveil version 1.0.5. If you haven’t used Radioshift, it’s our tool for listening to and recording Internet radio. With its built-in guide, you can search over 50,000 radio listings, then listen or subscribe with a single click.

This update adds filtering preferences to the Guide, to enable you to hide listings that require additional software, as well as listings that Radioshift doesn’t currently support. We’ve also improved Subscriptions so that programs are linked from a specific station’s listing. This is especially important for syndicated content that may appear on dozens of stations, such as NPR programs. We’re also always working to improve reliability of recordings, and this update fixes a rare crashing bug with MP3 recordings, along with many other minor issues.

This free update is recommended for all Radioshift users on Mac OS X 10.4 and 10.5, and can be downloaded right from the Radioshift page. If you haven’t tried out Radioshift yet, grab the free trial, and get started listening to and recording Internet radio content from around the world!

Security Update 2008-002 Compatibility Fix

This post was written by Rogue Amoeba alumnus Mike Ash.

Apple released Security Update 2008-002 yesterday and this led to a problem for some users on Mac OS X 10.5 using our Instant Hijack component. The Instant Hijack component is optionally installed by Airfoil, Audio Hijack Pro, and Nicecast, and enables these applications to grab audio from applications that are already running. Following the Security Update, ssh and some related programs would crash when they were run on Mac OS X 10.5 machines with Instant Hijack installed.

The Fix

First up, the fix – we’ve posted updates to Audio Hijack Pro (now at version 2.8.1), Airfoil (now at version 3.1.3), and Nicecast (now at version 1.9.2).

Each of these updates contains the updated Instant Hijack, version 2.0.3, which will resolve the issue. When you first run any of the aforementioned applications, you’ll be prompted to update your copy of Instant Hijack (provided you have an old version installed). Do so, and you’ll be good to go.

The Problem

So, what caused this issue? This was due to a bug in Instant Hijack and is related to a new security feature in Leopard called position-independent executables (PIE). PIE is related to address space layout randomization. The basic effect is to move programs such as ssh to a different place in memory each time they start, making it more difficult for an attacker to exploit them.

Position-independent executables were available in Leopard from the start, and Instant Hijack was written to take them into account. However, nothing on the system actually used this facility when Leopard shipped. That changed with Security Update 2008-002, which includes a copy of ssh and related utilities which were compiled using PIE. At that point, we discovered that Instant Hijack’s PIE support didn’t work correctly.

Instant Hijack’s PIE support expected the program to be loaded at a random address. However, Leopard’s PIE implementation loads a program’s executable code into memory, and then moves it to a new, random address. Instant Hijack briefly inspects each process as it launches, in order to catch those that produce audio. On something like ssh, it exits very early, but that was enough to cause an issue here. Instant Hijack was left looking for the executable code in the original but since-vacated spot, and this triggered a crash.

Summary

Fortunately, the fix to Instant Hijack was relatively quick and we’ve updated all of our affected software. If you use Audio Hijack Pro, Airfoil, or Nicecast, grab the latest update and install the newest Instant Hijack component. Once you do, you’ll be all set.

802.11n AirPort Express Units Now Supported By Airfoil

As you may have seen, Apple released new AirPort Express units yesterday. We picked up a unit as quickly as possibly to test with Airfoil, and quickly discovered that Airfoil wasn’t quite compatible with it. Mike and David worked quickly to rectify the situation, and we’ve now got updates to Airfoil for Mac and Airfoil for Windows respectively.

Airfoil for Mac 3.1.2 and Airfoil for Windows 2.5.1 each feature full support for the 802.11n AirPort Express units, as well as other minor bug fixes. They can be downloaded right away, so visit the Airfoil for Mac and Airfoil for Windows pages now to get the latest versions.

New AirPort Expresses Finally Arrive!

Today, Apple has unveiled a new AirPort Express unit, on their site. This update appears to be identical to the original AirPort Express in all ways, but it now features the faster 802.11n wireless protocol. That means you can still send music to the device and out through attached speakers with our own Airfoil application, letting you send any audio to the remote speakers( not just iTunes).

Apple first announced their updated AirPort Extreme base station, with 802.11n functionality, in January 2007. Since then, we’ve been wondering when the AirPort Express would see an update to the faster wireless protocol. As the months dragged on, I feared that perhaps they didn’t see a place for the device any longer. However, recent scuttlebutt suggested that the issue was with getting 802.11n to run cool enough in the existing form factor. It looks like that problem is solved, and we’re happy to see the AirPort Express will have many more years ahead of it.

I’m off to the Apple retail store to grab a new unit, so we can be 100% certain that it works fully with Airfoil. If you’ve got one already, let us know in the comments how it works!

Update (3/17/08 6:30 PM): It looks like this update does change the way the AirPort Express appears to Airfoil. Because of this, Airfoil 3.1.1 is not compatible with the new 802.11n AirPort Express units, but we’ve already got an internal version working with the device. We should have updates to Airfoil for Mac and Airfoil for Windows in a few days, providing full compatibility. Stay tuned!

Mea Culpa

Early this morning, it was brought to our attention that Airfoil Speakers for Linux and Airfoil Speakers for Windows both contained a small portion of GPL-licensed code. If you’re not aware, the GPL is a license for open source code, and using GPL code in a closed-source project is a violation of that license. So, having GPL-licensed code in these versions of Airfoil Speakers was a big no-no. What happened here?

Simply put, we screwed up. A 16-line wrapper written by Jon Lech Johanson to access a system API on Windows was being used in Airfoil Speakers, in violation of the GPL. David, the programmer behind Airfoil for Windows, had used the code while making an internal prototype. When he built the official Airfoil Speakers for Windows, he mistakingly reused this code.

We immediately worked to correct this issue. While this was a minor oversight that involved only a few lines of code that were removed right away, violating the GPL is a crummy thing to do in general. These violations happen frequently and sometimes maliciously. We’ve no desire to be lumped in with anyone intentionally stealing code. So, the downloads for Airfoil Speakers for Linux and Airfoil Speakers for Windows were both updated earlier today, just as soon as the offending code was removed. You can grab the latest versions from those links.

To be sure, open source software can be great. We make use of some LGPL’ed libraries (for Audio Hijack Pro and Nicecast) as well as some BSD/MIT-licensed code (as in Airfoil Speakers for Mac). When we use this source, we correctly acknowledge it in our documentation and give back when we can (See our mirror for instance). Our commercial software is closed source, however, and as such, it must remain GPL-free. Hopefully this public apology as well as our speedy fix will prevent any ill-will.

Our Software