]> granicus.if.org Git - graphviz/commitdiff
Security fixes from Javier Fernández-Sanguino Peña <jfs@computer.org>
authorellson <devnull@localhost>
Tue, 18 Oct 2005 19:05:34 +0000 (19:05 +0000)
committerellson <devnull@localhost>
Tue, 18 Oct 2005 19:05:34 +0000 (19:05 +0000)
and ek@research.att.com

cmd/dotty/dotty.lefty
cmd/lefty/internal.c

index b0653a78096aed5292ad7d90337d90cab76a0874..75cd9bedffa73fed7b12d0150d3fc0cebc46ddbd 100644 (file)
@@ -601,7 +601,10 @@ dotty.protogt.printorsave = function (gt, vt, otype, name, mode, ptype) {
         if (~(otype = ask ('print to', 'choice', 'file|printer')))
             return;
     if (otype == 'printer') {
-        name = '/tmp/dottyout.ps';
+       if (~getenv ('TMPDIR'))
+           name = concat (getenv ('HOME'), '/.dottyout.ps');
+       else 
+           name = concat (getenv ('TMPDIR'), '/.dottyout.ps', random (10000));
         if (getenv ('LEFTYWINSYS') ~= 'mswin' & ~pr)
             if (~(pr = ask ('printer command', 'string', 'lpr')))
                 return;
@@ -705,5 +708,5 @@ dotty.protogt.printorsave = function (gt, vt, otype, name, mode, ptype) {
     vt.canvas = canvas;
     destroywidget (pscanvas);
     if (otype == 'printer' & getenv ('LEFTYWINSYS') ~= 'mswin')
-        system (concat (pr, ' /tmp/dottyout.ps; rm /tmp/dottyout.ps'));
+       system (concat (pr, ' ', name, '; rm ',name));
 };
index e27e9787a8730e5a065dfb5352a00cc54a949e26..8a186360d3a87e219093716869ae91cd46dc99c7 100644 (file)
@@ -736,6 +736,7 @@ int Isleep (int argc, lvar_t *argv) {
 int Iecho (int argc, lvar_t *argv) {
     int i;
 
+    rtno = NULL;
     for (i = 0; i < argc; i++) {
         switch (Tgettype (argv[i].o)) {
         case T_STRING:  printf ("%s", Tgetstring (argv[i].o));   break;