github apple/cups release-1.1.5
v1.1.5

Changes in CUPS v1.1.5:

  • Security updates - new default configuration does not broadcast printer information and only allows access from the local system.
  • EXPERIMENTAL encryption support - CUPS now optionally supports TLS/SSL encryption via the OpenSSL library.
  • Documentation updates.
  • Makefile/configure script updates.
  • The RPM spec file didn't work out-of-the-box under RedHat or Mandrake.
  • Minor code cleanup to remove extraneous compiler warnings.
  • cupsTempFile() was using %p for the temporary filename; this should have been %08x (just 8 digit hex)
  • Deleting a printer with active print jobs would still crash the server.
  • ippWrite() and ipp_write_file() didn't send the correct value length for name-with-language and text-with-language attributes.
  • Updated IPP code to support copied strings (that should not be freed); this provides slightly more efficient IPP server performance.
  • Updated PDF filter to Xpdf 0.91.
  • httpGets() could go into an infinite loop if a line longer than the input buffer size was sent by a client. This could be used in a Denial-of-Service attack.
  • The lpstat and CUPS API functions now request only the data required when getting the list of printer or class information. This should improve performance with large numbers of printers on slower machines.
  • The scheduler was always enforcing the FilterLimit, even if FilterLimit was set to 0.
  • Updated the Linux USB backend to support Mandrake's /dev/usb/usblp# filenames.
  • The PRINTER and LPDEST environment variables did not override the lpoptions default printer.
  • The PPD read functions incorrectly included trailing characters (usually whitespace) after quoted string attributes.
  • The multiple-document-handling attribute handling code did not check for the correct value for collated copies (separate-documents-uncollated-copies).
  • The EPSON driver did not work with OKIDATA printers in EPSON emulation mode (needed change-emulation command)
  • The HP-GL/2 filter did not scale the plot properly in scale mode 2.
  • Added PPD files for 9-pin and 24-pin OKIDATA printers.
  • The httpSeparate() function didn't handle passwords that started with a number.
  • ippDelete() could free the character set string multiple times in name-with-language and text-with-language attributes.
  • The scheduler would access freed memory right after freeing it (for debug messages); these parts of the code have been reordered to avoid this situation which was causing sporatic errors and crashes.
  • The ppdClose() function didn't free all of the strings in the ppd_file_t structure.
  • The LoadAllJobs() function in the scheduler did not close the spool directory.
  • Changed all sprintf's that use string formats to snprintf's, even if the destination buffer is larger than the source string(s); this protects against buffer overflows caused outside of CUPS...
  • Changed all strcpy's to strncpy's between local and global variables, even if the destination buffer is larger than the source string; this protects against buffer overflows caused outside of CUPS...
  • The CUPS certificate functions didn't use the CUPS_SERVERROOT environment variable when set.
  • The directory services code was copying instead of comparing the remote printer info, resulting in unnecessary updates of the printer attributes for remote printers.
  • Added new mime.types rules to allow automatic raw printing of PCL and ESC/P files; PJL headers are parsed to differentiate between PostScript and PCL job files. This should eliminate a lot of the reports of SAMBA printing problems due to the missing "-oraw" or "-l" options.
  • The mimeLoadType() function didn't handle the 3-argument contains() function.
  • The LoadPPDs() function in the scheduler didn't properly set the alloc_ppds variable or handle a PPD database containing 0 printers.
  • The scheduler FindAvailablePrinter() function didn't use the same queuing logic as the CheckJobs() function. This caused classes to stall if a remote printer was always busy.
  • Jobs are now assigned to printers in a class round-robin style. This should prevent the first server in the class from bearing the brunt of the jobs.
  • The scheduler's LoadAllJobs() function didn't always restore remote printers for queued jobs on startup.
  • The serial backend didn't support the higher baud rates with the old termios interface. It now supports 57600 and 115200 baud.
  • The serial backend now supports different types of flow control; previously it ignored the flow=XYZ option in the device URI.
  • The serial backend now supports DTR/DSR flow control, which is popular on dot-matrix printers (access with "flow=dtrdsr" in the device URI)
  • Added new job-originating-host-name attribute for jobs. The new attribute provides the hostname or IP address of the machine that submitted the job.
  • The set-job-attributes code no longer allows read-only job attributes to be changed.
  • Expanded the click area for the navigation bar in the web interface.
  • Updated the lp and cancel commands to support all of the Solaris print options (some are simply ignored since they do not map)
  • Updated the scheduler to limit the number of file descriptors to the maximum select() set size. This was causing problems on Solaris systems where the max FD count was increased beyond 1024.
  • The scheduler's LoadDevices() function was getting interrupted by the SIGCHLD signal handler; now ignore child signals while loading devices.
  • Added quota and allow/deny user support for printers and classes.
  • Removed black/CMY adjustment code from the PS and image file RIPs; it was interfering with some CUPS driver dithering code.
  • The lpc program stopped listing the queue statuses after the first active printer.
  • The cups-lpd program used an output format that the Solaris printing system did not understand.
  • Updated the lpq program to use the Solaris format except under Tru64 UNIX.
  • Some DEC PPD files incorrectly use "Off" for the null value in UI constraints. Added "Off" to the list of accepted null values.
  • Changed the _BSD define constants to _BSD in all of the backends.
  • Added support for "lpstat printername", which is an undocumented feature in Solaris.
  • The HP-GL/2 filter now only sets the plot size if it is set in the plot file.
  • The lpmove command wasn't sending the requesting user name, causing it to always fail.
  • Updated the cupsTempFile() code to use GetTempPath() under Windows.
  • The cups-lpd mini-daemon didn't limit the number of data files accepted, didn't use cupsTempFile(), didn't handle control file job information in any order, and didn't free job options after printing a file.
  • The scheduler copy_banner() function did not explicitly set the owner and permissions of the banner files, which could prevent the banner pages from printing on some systems.
  • The lpstat program wasn't listing remote classes.
  • The scheduler did not verify that the printer-uri attribute was specified in all requests that required it.
latest releases: v2.3.3, v2.3.1, v2.2.13...
4 years ago