Security: Fixed a memory corruption bug reported in CVE-2010-2941 (Issue #3648)
The CUPS API incorrectly mapped the HTTP_UNAUTHORIZED status to the IPP_NOT_AUTHORIZED status code, when IPP_NOT_AUTHENTICATED would be the correct mapping (Issue #3684)
The scheduler would restart jobs while shutting down (Issue #3679)
Fixed a PPD loader bug that could cause a crash in cupsd (Issue #3680)
Improved the mapping of non-standard PPD and PWG names (Issue #3671)
The scheduler did not initialize Kerberos in all cases (Issue #3662)
cupsAdminSetServerSettings duplicated Listen and Order lines (Issue #3645)
Added DeviceN colorspace support to the CUPS Raster format (Issue #3419)
ppdMarkDefaults() did not clear the marked field of the previous choices (Issue #3642)
The serial backend would not allow a raw job to be canceled (Issue #3649)
The socket backend could go into an infinite loop with certain printers (Issue #3622)
Setting the PRINTER or LPDEST environment variables to “name/instance” did not work (Issue #3485)
The scheduler did not handle the JobRetryLimit setting properly (Issue #3466)
The lpstat command always showed a remote job ID of 0 for shared printers (Issue #3627)
Increased the write timeout for the libusb-based USB backend to 5 minutes (Issue #3595)
The libusb-base USB backend did not check whether the printer has a serial number (Issue #3590)
The lpadmin command did not support setting of custom option values (Issue #3631)
The lpadmin command did not support setting of the location or description of a class (Issue #3613)
The cupsaddsmb command did not give up after too many failed attempts (Issue #3615)
The CUPS library no longer uses certain problematic ctype macros that change based on the locale’s character set.
PJL value substitution of more than 9 values was broken (Issue #3621)
Custom options with missing string values caused ppdEmit* to segfault (Issue #3620)
Fixed an issue with the Italian version of the web interface (Issue #3624)
Fixed the Solaris SMF configuration file for cups-lpd (Issue #3611)
The scheduler did not set the notify-subscribed-event attribute when delivering printer-added or printer-modified events (Issue #3608)
The mailto notifier could get into an infinite loop (Issue #3609)
Date/time information was not shown in banner pages.
Relational operators were broken in #if/#elif/#else/#endif expressions for the PPD compiler.
Moving a job via the web interface failed without asking for authentication (Issue #3559)
The scheduler now clears the printer-state-reasons when the driver is changed (Issue #3570)
The web interface did not allow a user to change the driver (Issue #3537, Issue #3601)
The scheduler was not setting the PATH_INFO environment variable when needed (Issue #3600)
The scheduler incorrectly set the CUPSD_AUTH_TYPE environment variable instead of AUTH_TYPE (Issue #3599)
Fixed a buffer overrun in the PPD compiler (Issue #3594)
Fixed some additional IPP job template attribute mapping issues in the scheduler.