diff -up at-3.1.10/at.c.filter-environment at-3.1.10/at.c
--- at-3.1.10/at.c.filter-environment 2014-10-02 10:21:01.684890331 +0200
+++ at-3.1.10/at.c 2014-10-02 10:21:40.678770635 +0200
@@ -388,6 +388,22 @@ writefile(time_t runtimer, char queue)
int export = 1;
char *eqp;
+ /* Only accept alphanumerics and underscore in variable names.
+ * Also require the name to not start with a digit.
+ * Some shells don't like other variable names.
+ */
+ {
+ char *p = *atenv;
+ if (isdigit(*p))
+ export = 0;
+ for (; *p != '=' && *p != '\0'; ++p) {
+ if (!isalnum(*p) && *p != '_') {
+ export = 0;
+ break;
+ }
+ }
+ }
+
eqp = strchr(*atenv, '=');
if (ap == NULL)
eqp = *atenv;