Mercurial Hosting > luan
comparison core/src/luan/modules/PackageLuan.java @ 277:8ac3eaf8ecd9
fix security
git-svn-id: https://luan-java.googlecode.com/svn/trunk@278 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Fri, 21 Nov 2014 05:39:46 +0000 |
parents | 1507149fc447 |
children | 4a0a84c38617 |
comparison
equal
deleted
inserted
replaced
276:e5a0dd95f3e7 | 277:8ac3eaf8ecd9 |
---|---|
44 t.put( method, new LuanJavaFunction(PackageLuan.class.getMethod(method,parameterTypes),null) ); | 44 t.put( method, new LuanJavaFunction(PackageLuan.class.getMethod(method,parameterTypes),null) ); |
45 } | 45 } |
46 | 46 |
47 public static LuanTable loaded(LuanState luan) { | 47 public static LuanTable loaded(LuanState luan) { |
48 return luan.registryTable("Package.loaded"); | 48 return luan.registryTable("Package.loaded"); |
49 } | |
50 | |
51 private static LuanTable blocked(LuanState luan) { | |
52 return luan.registryTable("Package.blocked"); | |
53 } | 49 } |
54 | 50 |
55 private static Object pkg(LuanState luan,String key) { | 51 private static Object pkg(LuanState luan,String key) { |
56 LuanTable t = (LuanTable)loaded(luan).get("Package"); | 52 LuanTable t = (LuanTable)loaded(luan).get("Package"); |
57 return t==null ? null : t.get(key); | 53 return t==null ? null : t.get(key); |
101 LuanFunction fn = loader(luan,modName,true); | 97 LuanFunction fn = loader(luan,modName,true); |
102 return fn==null ? null : new Object[]{fn,modName}; | 98 return fn==null ? null : new Object[]{fn,modName}; |
103 } | 99 } |
104 | 100 |
105 | 101 |
106 public static void block(LuanState luan,String key) { | |
107 blocked(luan).put(key,true); | |
108 } | |
109 | |
110 public static boolean is_blocked(LuanState luan,String key) { | |
111 return blocked(luan).get(key) != null; | |
112 } | |
113 | |
114 public static LuanFunction load_lib(LuanState luan,String path) | 102 public static LuanFunction load_lib(LuanState luan,String path) |
115 throws ClassNotFoundException, NoSuchFieldException, IllegalAccessException, LuanException | 103 throws ClassNotFoundException, NoSuchFieldException, IllegalAccessException, LuanException |
116 { | 104 { |
117 int i = path.lastIndexOf('.'); | 105 int i = path.lastIndexOf('.'); |
118 String clsPath = path.substring(0,i); | 106 String clsPath = path.substring(0,i); |