Univention Bugzilla – Full Text Bug Listing |
Summary: | Fehlerhaftes Escaping von Druckerbeschreibungen und Standorten im cups-printer-Listener-Skript | ||
---|---|---|---|
Product: | UCS | Reporter: | Moritz Muehlenhoff <jmm> |
Component: | Printserver | Assignee: | Felix Botner <botner> |
Status: | CLOSED FIXED | QA Contact: | Philipp Hahn <hahn> |
Severity: | normal | ||
Priority: | P5 | CC: | gohmann, meybohm |
Version: | UCS 2.3 | Flags: | walkenhorst:
Patch_Available+
|
Target Milestone: | UCS 2.3-2 | ||
Hardware: | Other | ||
OS: | Linux | ||
What kind of report is it?: | --- | What type of bug is this?: | --- |
Who will be affected by this bug?: | --- | How will those affected feel about the bug?: | --- |
User Pain: | Enterprise Customer affected?: | ||
School Customer affected?: | ISV affected?: | ||
Waiting Support: | Flags outvoted (downgraded) after PO Review: | ||
Ticket number: | Bug group (optional): | ||
Max CVSS v3 score: | |||
Bug Depends on: | |||
Bug Blocks: | 51196 | ||
Attachments: | Ungetesteter Patch |
Description
Moritz Muehlenhoff
2010-01-21 08:44:52 CET
Das hatten wir meines Wissens bereits zur 2.3 angepasst aber scheinbar hier vergessen. (In reply to comment #0) > Aufgetreten beim Update eines Printservers auf UCS 2.3-0 bei einem Kunden: > > Der Start des /etc/init.d/cups dauert sehr lange weil eine ganze Reihe von > Druckern vergeblich angelegt werden. In /etc/init.d/cups findet sich Code, der > durch alle Dateien in /var/cache/univention-printserver iteriert und diese > ausführt. Wenn der Exitcode 0 ist, werden sie anschliessend gelöscht. Die > Shell-Skripte rufen univention-lpadmin auf, das wiederum über Expect lpadmin > aufruft. Das kann aber nicht ausgeführt werden, da das Escaping von > Beschreibungen nicht korrekt ist. Ein anonymisiertes Beispiel für ein solches > Skript: > > #!/bin/sh > /usr/sbin/univention-lpadmin -u allow root,@iosgh -p pr14012 -L Foo and Bar -m > foo/km40Pnp.ppd -D Konica MIN bizhub 40P -v cupspykota:lpd://10.36.44.71 -E > > Es fehlen min. doppelte Anführungszeichen um die Beschreibung und den Standort. > Ändere ich das Skript in > > #!/bin/sh > /usr/sbin/univention-lpadmin -u allow root,@iosgh -p pr14012 -L "Foo and Bar" > -m foo/km40Pnp.ppd -D "Konica MIN bizhub 40P" -v cupspykota:lpd://10.36.44.71 > -E > > wird der Drucker angelegt. Die Dateien in /var/cache/univention-printserver > werden durch das cups-printer Listener-Skript offenbar fehlerhaft erzeugt. Kleine Korrektur: Wenn ich den Befehl in lpadmin mit " angebe funktioniert es, wenn ich die " in das Skript einfüge, das univention-lpadmin aufruft, funktioniert es nicht. Das Maschinen-Kennwort in /etc/machine.secret ist aber korrekt, ein authentifiziertes ldapsearch auf das Maschinenkonto mit dem Inhalt von /etc/machine.secret funktioniert. *** Bug 17597 has been marked as a duplicate of this bug. *** Bitte zunächst einen Patch an diesen Bug hängen (2.3-1 ist noch nicht freigegeben). Created attachment 2293 [details]
Ungetesteter Patch
Ich hänge hier mal die erste (ungetestete!) Version des Patches an.
(In reply to comment #5) > Created an attachment (id=2293) [details] > Ungetesteter Patch > > Ich hänge hier mal die erste (ungetestete!) Version des Patches an. Patch_Available: Patch funktioniert Aus den Argumenten werden ' und " jetzt entfernt, außerdem führende und Leerzeichen am Ende. Gebaut in ucs2.3-2. Der Patch ist zwar etwas zu übereifrig, da doppelte Anführungszeichen innerhalb von einfachen Anführungszeichen okay sind. Einfache Anführungszeichen ließen sich aus richtig esacpen: s/'/'\''/g Patch funktioniert ansonsten. # /etc/init.d/cups stop # udm shares/printer create --superordinate "cn=printers,`ucr get ldap/base`" --set name="cc" --set model=None --set spoolHost="`ucr get ldap/master`" --set sambaName="c c" --set uri=file:"/tmp/c c" --set location='$PATH `date` $(date) '\'foo\'' "bar"' --set description='$PATH `date` $(date) '\'foo\'' "bar"' Object created: cn=cc,cn=printers,dc=univention,dc=qa # cat /var/cache/univention-printserver/* #!/bin/sh /usr/sbin/univention-lpadmin '-u' 'allow:all' '-p' 'cc' '-L' '$PATH `date` $(date) foo bar' '-D' '$PATH `date` $(date) foo bar' '-v' 'file:/tmp/c c' '-E' # /etc/init.d/cups start # ls /var/cache/univention-printserver/ # ChangeLog-Eintrag ist vorhanden. VERIFIED UCS 2.3-2 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte der Bug dupliziert werden: "Clone This Bug". |