Releases: apple/cups
Releases · apple/cups
v1.1.23rc1
Changes in CUPS v1.1.23rc1:
- The lpr man page did not document the "-U" option (Issue #998)
- The scheduler no longer sends the page-set option when printing banner pages (Issue #995)
- Fixed a debug message in the imagetops filter (Issue #1012)
- The lprm man page listed the "-" option in the wrong order (Issue #911)
- The hpgltops filter contained two buffer overflows that could potentially allow remote access to the "lp" account (Issue #1024)
- The lppasswd command did not protect against file descriptor or ulimit attacks (Issue #1023)
- The "lpc status" command used the wrong resource path when querying the list of printers and jobs, causing unnecessary authentication requests (Issue #1018)
- The httpWait() function did not handle signal interruptions (Issue #1020)
- The USB backend used the wrong size status variable when checking the printer status (Issue #1017)
- The scheduler did not delete classes from other classes or implicit classes, which could cause a crash (Issue #1015)
- The IPP backend now logs the remote print job ID at log level NOTICE instead of INFO (so it shows up in the error_log file...)
v1.1.23
Changes in CUPS v1.1.23:
- Updated the Spanish man pages (Issue #1041)
- The lpstat man page contained a typo (Issue #1040)
- The scheduler's is_path_absolute() code could cause a DoS (Issue #1042)
- The scheduler's device loading code used the wrong size limits for the make/model and info parameters (Issue #1035)
- The PNG loading code did not use a "long unsigned integer" format specifier for the width and height (Issue #1032)
- The web interface only showed the first 4 or 8 characters of "{variable-name}" for undefined template variables (Issue #1031)
- The hpgltops filter did not handle a common PCL command to enter HP-GL/2 mode (Issue #1037)
v1.1.22rc2
Changes in CUPS v1.1.22rc2:
- The pdftops filter didn't check the range of all integer attributes (Issue #972)
- Documentation corrections (Issue #944, Issue #946)
- Also sanitize device URI in argv[0] (Issue #933)
- cupsRasterReadHeader() didn't swap bytes for the numeric fields properly (Issue #930)
v1.1.22rc1
Changes in CUPS v1.1.22rc1:
- Now sanitize the device URI that is reported in the error_log file (Issue #920)
- Fixed some memory and file descriptor leaks in the job dispatch code (Issue #921)
- Deleting a printer could cause a crash with browsing enabled (Issue #865, Issue #881, Issue #928)
- Browsing would turn off if the scheduler got an EAGAIN error (Issue #924)
- The mime.types file didn't recognize PostScript as a PJL language name (Issue #925)
v1.1.22
Changes in CUPS v1.1.22:
- The lpstat man page incorrectly listed the "-s" option as using the equivalent of the "-p" option to list the printers; it uses the "-v" option to list the printers (Issue #986)
- Now allow 0-length reads in the CUPS file API (Issue #985)
- cupsDoFileRequest() now sets cupsLastError() to IPP_ERROR on network errors (Issue #953)
- The pdftops filter didn't scale small pages up to the output page size when the fitplot option was used (Issue #984)
- Fixed the ipptest program usage message (Issue #959)
- Added Spanish man pages (Issue #963)
- Fixed the order of comparisons in the client.conf reading code (Issue #971)
- cupsLangGet() incorrectly set the current locale (Issue #970)
v1.1.21rc2
Changes in CUPS v1.1.21rc2:
- Fixed a denial-of-service bug in the CUPS browse protocol support (Issue #863)
- The scheduler used a select() timeout of INT_MAX seconds when there was nothing to do, which doesn't work on IRIX (Issue #864)
- Updated the cupsaddsmb program to use the new Windows 2000 PostScript drivers instead of the Windows NT printer drivers (Issue #390)
- The gziptoany filter did not produce copies for raw print jobs (Issue #808)
- The cupsLangGet() function now uses nl_langinfo(), when available, to get the current encoding (Issue #856)
- Added a ReloadTimeout directive to control how long the scheduler waits for jobs to complete before restarting the scheduler (Issue #861)
- Added a note to the default cupsd.conf file which mentions that you must allow connections from localhost for the command-line and web interfaces to work (Issue #850)
- The IPP backend incorrectly used the local port when communicating with a remote server; this caused problems with some custom configurations (Issue #852)
- The cups-lpd mini-daemon wasn't using the right default banner option (Issue #851)
- Updated the new httpDecode64_2() and httpEncode64_2() functions to handle arbitrary binary data, not just text (Issue #860)
- String options with quotes in their values were not quoted properly by the scheduler (Issue #839)
- Configure script changes for GNU/Hurd (Issue #838)
- The lppasswd program was not installed properly by GNU install when the installer was not root (Issue #836)
- Updated the cups-lpd man page (Issue #843)
- Fixed a typo in the cupsd man page (Issue #833)
- The USB backend now defaults to using the newer /dev/usb/lpN filenames; this helps on systems which use the devfs filesystem type on Linux (Issue #818)
- The config.h file did not define the HAVE_USERSEC_H constant when the configure script detected the usersec.h header file. This caused authentication errors on AIX (Issue #832)
- The lp and lpr commands now report the temporary filename and error if they are unable to create a temporary file (Issue #812)
- Added ServerTokens directive to control the Server header in HTTP responses (Issue #792)
- Added new httpDecode64_2(), httpEncode64_2(), and httpSeparate2() functions which offer buffer size arguments (Issue #797)
- The cupsGetFile() and cupsPutFile() code did not support CDSA or GNUTLS (Issue #794)
- The httpSeparate() function did not decode all character escapes (Issue #795)
- The cupstestppd program now checks for invalid Duplex option choices and fails PPD files that use non-standard values (Issue #791)
- Updated the printer name error message to indicate that spaces are not allowed (Issue #675)
- The scheduler didn't handle HTTP GET form data properly (Issue #744)
- The pstops filter now makes sure that the prolog code is sent before the setup code (Issue #776)
- The pstops filter now handles print files that incorrectly start @pjl commands without a language escape (Issue #734)
- Miscellaneous build fixes for NetBSD (Issue #788)
- Added support for quoted system group names (Issue #784)
- Added "version" option to IPP backend to workaround serious bug in Linksys's IPP implementation (Issue #767)
- Added Spanish translation of web interface (Issue #772, Issue #802)
- The LPD backend now uses geteuid() instead of getuid() when it is available (Issue #752)
- The IPP backend did not report the printer state if the wait option was set to "no" (Issue #761)
- The printer state was not updated for "STATE: foo,bar" messages (Issue #745)
- Added new CUPS API convenience functions which accept a HTTP connection to eliminate extra username/password prompts. This resolves a previous authentication caching issue (Issue #729, Issue #743)
- The scheduler did not correctly throttle the browse broadcasts, resulting in missing printers on client machines (Issue #754)
- The scheduler did not pass the correct CUPS_ENCRYPTION setting to CGI programs which caused problems on systems which used non-standard encryption settings (Issue #773)
- The lpq command showed 11st, 12nd, and 13rd instead of 11th, 12th, and 13th for the rank (Issue #769)
- "make install" didn't work on some platforms due to an error in the man page makefiles (Issue #775)
- Changed some calls to snprintf() in the scheduler to SetStringf() (Issue #740)
v1.1.21rc1
Changes in CUPS v1.1.21rc1:
- Fixed some "type-punned" warnings produced by GCC when -fstrict-aliasing is specified (Issue #679)
- The PDF filter incorrectly calculated the bounding box of a page (Issue #682)
- The IPP backend did not use SSL when printing over a port other than 443 (Issue #730)
- The scheduler could crash when processing a Limit or LimitExcept directive (Issue #728)
- The lpq, lpr, and lp commands did not differentiate between the server being unresponsive and the lack of a default printer (Issue #728)
- The PAM checks in the configure script did not stop after the first match (Issue #728)
- The cups-config man page was incorrectly placed in section 3 (Issue #728)
- The cupstestppd utility did not show a warning message when a PPD file indicated BCP protocol support with PJL (Issue #720)
- The scheduler did not return the correct exit code when startup failed (Issue #718)
- The cupsRasterReadPixels() function checked for EAGAIN, which caused problems on FreeBSD (Issue #723)
- The cupsGetDests() function did not use the current encryption setting (Issue #653)
- The scheduler did not properly parse name-based BrowseRelay directives in the cupsd.conf file (Issue #711)
- The IPP backend now supports the following options in the device URI: encryption, waitjob, and waitprinter (Issue #699)
- The parallel, serial, socket, and USB backends did not return a non-zero exit status when a job failed to print in the middle of sending it (Issue #715)
- Location directives in the cupsd.conf file were case-sensitive for printer and class names, so queue-specific access control was not reliable (Issue #700)
- cupsDoFileRequest() did not handle HTTP continue status messages in all cases, causing sporatic problems with IPP printers from some vendors (Issue #716)
- The rastertodymo driver now supports the Zebra ZPL language (Issue #713)
- The test suite no longer generates a printcap file, which caused problems when testing as the root user (Issue #693)
- The scheduler now updates the accepting state of an implicit class based upon the accepting state of its member printers (Issue #697)
- The pstops filter didn't properly skip leading PJL commands (Issue #664)
- The reinterpret_cast keyword was not highlighted when printing C/C++ source files in prettyprint mode (Issue #694)
- Fixed a segfault problem with some of the client programs (Issue #668)
- When using RunAsUser, the scheduler did not correctly set the ownership of the log files, preventing log file rotation (Issue #686)
- The image filters did not correctly load 1-bit PNG files (Issue #687)
- The pdftops filter did not show all annotation objects in a PDF file (Issue #674)
- The pdftops filter did not print the contents of textual form elements, making it impossible to print a filled-in form (Issue #663)
- Integrated the MacOS X/Darwin USB backend into the CUPS baseline (Issue #661)
- The USB backend incorrectly reported "media tray empty" (Issue #660)
- The scheduler did not use a case-insensitive comparison when checking for group membership, which caused problems with Win9x clients printing via SAMBA (Issue #647)
- The scheduler did not report the addresses associated with certain network errors, making troubleshooting difficult (Issue #648, #649)
- The cupstestppd program did not allow a default choice of "Unknown" as required by the PPD spec (Issue #651)
- The select() buffers are now allocated to be at least as large as sizeof(fd_set) (Issue #639)
- The LPD backend now supports overriding the print job username via the device URI (Issue #631)
- The scheduler did not handle an unknown MIME type when checking for a CGI script (Issue #603)
- Added a timeout optimization to the scheduler's main loop to allow CUPS to sleep more of the time (Issue #629)
- The USB backend now retries printing to devices of the form "usb://make/model" if any USB port shows up as "busy" (Issue #617)
- The httpGetHostByName() function did not range check IP address values (Issue #608)
- The httpUpdate() function could return HTTP_ERROR instead of the HTTP status if the server closed the connection before the client received the whole response (Issue #611)
- The LPD mini-daemon did not allow the administrator to force banner pages on (Issue #605)
- Added PAM support for Darwin/MacOS X (Issue #550)
- The web interface now provides a "Set As Default" button to set the default printer or class on a server (Issue #577)
- The HTTP authentication cache was broken (Issue #517)
- The cupstestppd utility now fails PPD files that have a DefaultOption keyword for a non-existance option name (Issue #476)
- Optimized the scanning of new PPD files on scheduler startup (Issue #424)
- The EPM list file did not include the bin, lib, or sbin directories (Issue #598)
- The web interface did not redirect administration tasks to the primary server for a class or printer (Issue #491, #652)
- The cups-lpd mini-daemon did not reject print jobs to queues that were rejecting new print jobs (Issue #515)
- Some calls to the ctype functions did not account for platforms that use a signed char type by default (Issue #518)
- The scheduler could use excess amounts of CPU if a CGI program was sending data faster than the client could take it (Issue #595)
- Updated the Ghostscript 8.x integration stuff (Issue #484)
- The lpd backend used a source port of 732 by default, which is outside of the range defined by RFC 1179; also added a new (default) "reserve=any" option for any priviledged port from 1 to 1023 (Issue #474)
- The scheduler did not check for a valid Listen/Port configuration (Issue #499)
- The cupsPrintFiles() function did not always set the last IPP error message (Issue #538)
- The pstops filter did not write the PostScript header line if the file began with a PJL escape sequence (Issue #574)
- The printer-is-accepting-jobs status of remote printers was not sent to clients via browsing or polling (Issue #571)
- Browse packets did not indicate whether a printer was accepting or rejecting jobs.
- The web interface did not show the printer state history information (Issue #592)
- The rastertoepson filter would crash under certain cirsumstances (Issue #583)
- The USB backend did not handle serial numbers using the (incorrect) SN keyword and did not terminate the make and model name strings properly (Issue #471, Issue #588)
- The USB backend did not build on Solaris x86 (Issue #585)
- The cupsDoAuthentication() function did not use the method name for Digest authentication (Issue #584)
- The scheduler could crash if a print job could not be printed and the PreserveJobHistory option was turned off (Issue #535)
- cups-lpd now logs the temporary filenames that could not be opened in order to make troubleshooting easier (Issue #565)
- cupsGetJobs() now returns -1 on error (Issue #569)
- Added localization for Belarusian (Issue #575)
- The LPD backend used the full length of the hostname when creating the data and control filenames, which causes problems with older systems that can't handle long filenames (Issue #560)
- The scheduler did not refresh the co...
v1.1.21
Changes in CUPS v1.1.21:
- The scheduler did not separate Digest authentication parameters with commas (Issue #882)
- Fixed some problems with image printing to custom page sizes (Issue #891)
- Removed the remaining scheduler code that did not use the "close-on-exec" file descriptor flag to speed up program invocations (Issue #890)
- The "lpr -r" command removed the print file even if it was not printed. It now only removes the file if the job is successfully created (Issue #886)
- Revamped the custom page size orientation fix (Issue #127)
- The lp, lpq, lpr, and lpstat commands now report when an environment variable is pointing to a non-existent printer instead of just saying "no default destination" (Issue #879)
- Queue names with 2 periods (e.g. "printer..2") were not supported (Issue #866)
v1.1.20rc6
Changes in CUPS v1.1.20rc6:
- "lp -i jobid -H restart" would often return an error even though the job restarted successfully (Issue #362)
- The scheduler did not check for invalid allow/deny addresses such as "11.22.33.44/24". It now masks off the extra address bits and logs a warning message in the error_log file (Issue #337)
- The cupstestppd utility now checks for missing ImageableArea and PaperDimension attributes for each defined PageSize (Issue #365)
- The IPP code did not wait for a reply indefinitely on HTTP connections in "blocking" mode (Issue #377)
- The web interfaces did not rewrite the default printer URI properly (Issue #299 and #369)
- The LPD backend passed the C and L commands in the wrong order (Issue #378)
- The Dymo label printer driver did not set the label length properly (Issue #373)
- The scheduler did not support job IDs higher than 99999 (Issue #371)
- The Visual C++ project files did not work (Issue #366)
- The scheduler's cupsLangSeek() function did not reset the "EOF" flag, preventing compressed files from being typed properly in some cases (Issue #368)
- The cupsLangGet() cache was only used if the locale name provided an explicit character set name (Issue #354)
- The CUPS API convenience functions did not call cupsLangFree() when they were done with the localization data (Issue #354)
- The scheduler did not return the job-hold-until-supported or job-hold-until-default attributes (Issue #356)
- The cupsaddsmb program did not support the new CUPS driver for Windows (Issue #357)
v1.1.20rc5
Changes in CUPS v1.1.20rc5:
- The scheduler did not initialize the browse socket file descriptor properly when only SLP browsing was enabled (Issue #259)
- The scheduler accessed the job attributes before they were set (Issue #347, fix to Issue #335)
- The cupsCancelJob() function did not return 0 when the job could not be canceled (Issue #340)