From 5dc7d9191c9da3dc4ede1c6ecf2aba23493634bd Mon Sep 17 00:00:00 2001 From: yolabingo Date: Wed, 15 Apr 2015 18:09:02 -0600 Subject: [PATCH 1/2] check result from redis.Redis.get() before escaping Check that redis returned a value before escaping it. Otherwise None gets cast to the string "None" and get.tmpl spits that out. --- app.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app.py b/app.py index b8c7553..9f77a9b 100644 --- a/app.py +++ b/app.py @@ -3,6 +3,7 @@ import random import string import os +import types host = "https://secrets-accp.mendix.com" r = redis.Redis() @@ -56,8 +57,10 @@ def generate(): @app.route("/get/") def retrieve(key=None): - secret = escape(r.get(key)) + secret = (r.get(key) r.delete(key) + if type(secret) == types.StringType: + secret = escape(secret) return render_template('get.tmpl', secret=secret) if __name__ == "__main__": From 9575c624bca09760766e97093490cac607d67183 Mon Sep 17 00:00:00 2001 From: TJ Date: Thu, 16 Apr 2015 13:20:37 -0600 Subject: [PATCH 2/2] Don't overwrite keys. Fix typos. --- app.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app.py b/app.py index 9f77a9b..3b1d3d2 100644 --- a/app.py +++ b/app.py @@ -35,7 +35,8 @@ def create(): generated = True else: generated = False - r.set(key, secret) + while not r.setnx(key, secret): + key = random_string(redis_key_length) secret_url = "%s/get/%s" % (host, key) if generated: @@ -57,9 +58,9 @@ def generate(): @app.route("/get/") def retrieve(key=None): - secret = (r.get(key) + secret = r.get(key) r.delete(key) - if type(secret) == types.StringType: + if type(secret) != types.NoneType: secret = escape(secret) return render_template('get.tmpl', secret=secret)