summaryrefslogtreecommitdiff
path: root/cloudinit/__init__.py
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2011-04-04 12:45:01 -0400
committerScott Moser <smoser@ubuntu.com>2011-04-04 12:45:01 -0400
commit371561772c9073daf9033145b4b2156bc9f0e7dc (patch)
tree21dc090afcf3b87b7317ca43555ba0c0d0f687a4 /cloudinit/__init__.py
parent45794188f06ad3ab990f2c5d32cd2a67341475aa (diff)
downloadvyos-cloud-init-371561772c9073daf9033145b4b2156bc9f0e7dc.tar.gz
vyos-cloud-init-371561772c9073daf9033145b4b2156bc9f0e7dc.zip
convert some user input from dos to unix (LP: #744965)
If user input is a consumed as a user-script, a boothook, or a upstart job and appears to be dos-formated, then change it to unix formated LP: #744965
Diffstat (limited to 'cloudinit/__init__.py')
-rw-r--r--cloudinit/__init__.py22
1 files changed, 6 insertions, 16 deletions
diff --git a/cloudinit/__init__.py b/cloudinit/__init__.py
index 24e12d08..ab0a834a 100644
--- a/cloudinit/__init__.py
+++ b/cloudinit/__init__.py
@@ -393,14 +393,15 @@ class CloudInit:
filename=filename.replace(os.sep,'_')
scriptsdir = get_ipath_cur('scripts')
util.write_file("%s/%s" %
- (scriptsdir,filename), payload, 0700)
+ (scriptsdir,filename), util.dos2unix(payload), 0700)
def handle_upstart_job(self,data,ctype,filename,payload):
if ctype == "__end__" or ctype == "__begin__": return
if not filename.endswith(".conf"):
filename=filename+".conf"
- util.write_file("%s/%s" % ("/etc/init",filename), payload, 0644)
+ util.write_file("%s/%s" % ("/etc/init",filename),
+ util.dos2unix(payload), 0644)
def handle_cloud_config(self,data,ctype,filename,payload):
if ctype == "__begin__":
@@ -427,26 +428,15 @@ class CloudInit:
if ctype == "__begin__": return
filename=filename.replace(os.sep,'_')
+ payload = util.dos2unix(payload)
prefix="#cloud-boothook"
- dos=False
start = 0
if payload.startswith(prefix):
- start = len(prefix)
- if payload[start] == '\r':
- start=start+1
- dos = True
- else:
- if payload.find('\r\n',0,100) >= 0:
- dos = True
-
- if dos:
- payload=payload[start:].replace('\r\n','\n')
- elif start != 0:
- payload=payload[start:]
+ start = len(prefix) + 1
boothooks_dir = self.get_ipath("boothooks")
filepath = "%s/%s" % (boothooks_dir,filename)
- util.write_file(filepath, payload, 0700)
+ util.write_file(filepath, payload[start:], 0700)
try:
env=os.environ.copy()
env['INSTANCE_ID']= self.datasource.get_instance_id()