diff options
| author | Richard M. Stallman | 1994-05-17 09:43:47 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1994-05-17 09:43:47 +0000 |
| commit | cf2043478213c421f70701038035496a8d74f46f (patch) | |
| tree | fc5e3d36072910ccb7263255717c9c706ca227d7 /src | |
| parent | ca7fc9331b3e6bc2e2bf5d9b2d623e2309965c45 (diff) | |
| download | emacs-cf2043478213c421f70701038035496a8d74f46f.tar.gz emacs-cf2043478213c421f70701038035496a8d74f46f.zip | |
(validate_x_resource_name): Don't let Vx_resource_name have invalid characters.
Diffstat (limited to 'src')
| -rw-r--r-- | src/xfns.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/xfns.c b/src/xfns.c index c0313b20b01..5fc2ac650ca 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -1322,7 +1322,26 @@ x_set_vertical_scroll_bars (f, arg, oldval) | |||
| 1322 | static void | 1322 | static void |
| 1323 | validate_x_resource_name () | 1323 | validate_x_resource_name () |
| 1324 | { | 1324 | { |
| 1325 | if (! STRINGP (Vx_resource_name)) | 1325 | if (STRINGP (Vx_resource_name)) |
| 1326 | { | ||
| 1327 | int len = XSTRING (Vx_resource_name)->size; | ||
| 1328 | unsigned char *p = XSTRING (Vx_resource_name)->data; | ||
| 1329 | int i; | ||
| 1330 | |||
| 1331 | /* Allow only letters, digits, - and _, | ||
| 1332 | because those are all that X allows. */ | ||
| 1333 | for (i = 0; i < len; i++) | ||
| 1334 | { | ||
| 1335 | int c = p[i]; | ||
| 1336 | if (! ((c >= 'a' && c <= 'z') | ||
| 1337 | || (c >= 'A' && c <= 'Z') | ||
| 1338 | || (c >= '0' && c <= '9') | ||
| 1339 | || c == '-' || c == '_')) | ||
| 1340 | goto fail; | ||
| 1341 | } | ||
| 1342 | } | ||
| 1343 | else | ||
| 1344 | fail: | ||
| 1326 | Vx_resource_name = make_string ("emacs", 5); | 1345 | Vx_resource_name = make_string ("emacs", 5); |
| 1327 | } | 1346 | } |
| 1328 | 1347 | ||