From 95e0ecf10c6a60af72a2038616244406adfcc333 Mon Sep 17 00:00:00 2001
From: Craig Brozefsky <craig@red-bean.com>
Date: Mon, 23 Jul 2012 20:25:02 -0500
Subject: [PATCH] Ensure all references in a ns form are valid, otherwise you
 can invoke any clojure.core FN within a ns form.

---
 src/clj/clojure/core.clj | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/clj/clojure/core.clj b/src/clj/clojure/core.clj
index 7fdfd46..619c9ab 100644
--- a/src/clj/clojure/core.clj
+++ b/src/clj/clojure/core.clj
@@ -5144,6 +5144,11 @@
         references (remove #(= :gen-class (first %)) references)
         ;ns-effect (clojure.core/in-ns name)
         ]
+    (doseq [ref (map first references)]
+      (when-not (and (or (symbol? ref)
+                         (keyword? ref))
+                     (contains? #{"refer" "require" "use" "import" "refer-clojure"} (clojure.core/name ref)))
+        (throw (IllegalArgumentException. (str (pr-str ref) " is not a valid reference.")))))
     `(do
        (clojure.core/in-ns '~name)
        (with-loading-context
-- 
1.7.11.1

