Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-8545

puppet 5/ruby 2.4 can't handle invalid plists

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Normal
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: PUP 5.3.6, PUP 5.5.0, PUP 6.0.0
    • Component/s: None
    • Labels:
      None
    • Template:
    • Team:
      Platform Core
    • Sub-team:
    • Sprint:
      Platform Core KANBAN
    • Method Found:
      Needs Assessment
    • Release Notes:
      Bug Fix
    • Release Notes Summary:
      When processing malformed plist files, we used to use /dev/stdout which can cause Ruby to complain. We now use '-' instead which means to use stdout when processing the plist file with plutil.
    • QA Risk Assessment:
      Manual

      Description

      Puppet Version: 5.4.0
      Puppet Server Version: n/a
      OS Name/Version: macOS 10.13.3

      Puppet 5.4.0 using ruby 2.4.3 can't handle invalid plists.

      If a plist contains and invalid comment (e.g., a comment with '–' in the text), CFPropertyList will fail to parse it, passing it on to a shell out to `plutil -convert xml1 -o /dev/stdout`. However, it seems some subsystem (I believe it may be ruby 2.4) doesn't allow operations on `/dev/stdout`

      Warning: Cannot read file /Library/LaunchDaemons/badcomment.plist; Puppet is skipping it.\nDetails: Execution of '/usr/bin/plutil -convert xml1 -o /dev/stdout /Library/LaunchDaemons/badcomment.plist' returned 1: <?xml version="1.0" encoding="UTF-8"?>Warning: Cannot read file /Library/LaunchDaemons/badcomment.plist; Puppet is skipping it.\n

      [...]

      /dev/stdout: Operation not supported

      To reproduce, add a comment containing '–' to any plist in /Library/LaunchDaemons, then run puppet.

      Desired Behavior:

      Puppet should handle the malformed plist and successfully call plutil.

      Actual Behavior:

      After CFPropertyList fails, the plutil call also fails.

       

        Attachments

          Activity

            jsd-sla-details-panel

              People

              • Assignee:
                eric.delaney Eric Delaney
                Reporter:
                ccaviness Clay Caviness
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: