From 0d35599b07540747a8462cf352c579172be7667a Mon Sep 17 00:00:00 2001
From: JWu <j.wuttke@fz-juelich.de>
Date: Thu, 2 Aug 2012 12:54:37 +0200
Subject: [PATCH] prevent crash when ntack=0

---
 pub/src/dualplot.cpp | 32 +++++++++++++++++---------------
 1 file changed, 17 insertions(+), 15 deletions(-)

diff --git a/pub/src/dualplot.cpp b/pub/src/dualplot.cpp
index ff917704..6c57f257 100644
--- a/pub/src/dualplot.cpp
+++ b/pub/src/dualplot.cpp
@@ -359,23 +359,25 @@ void CPlot::ps_ticktack( const vector<double>& Tacks, int ntpt,
 {
     uint i, ntack;
     ntack = Tacks.size();
-    ps_accu.push_back( "  [\n" );
-    if (A->logflag && ( Tacks[0]<1e-3 || Tacks[ntack-1]>1e3 )) {
-        for (i=0; i<ntack; i++) {
-            snprintf( outlin, mLin,
-                      "   %9.6f {(10)(%d)sp()} %%{(%g)}\n", 
-                      A->pc(Tacks[i]), (int)(log10(Tacks[i])),
-                      (float) Tacks[i]);
-            ps_accu.push_back( outlin );
-        }
-    } else {
-        for (i=0; i<ntack; i++) {
-            snprintf( outlin, mLin, "   %9.6f {(%g)}\n", 
-                      A->pc(Tacks[i]), (float) Tacks[i]);
-            ps_accu.push_back( outlin );
+    if (ntack > 0 ) {
+        ps_accu.push_back( "  [\n" );
+        if (A->logflag && ( Tacks[0]<1e-3 || Tacks[ntack-1]>1e3 )) {
+            for (i=0; i<ntack; i++) {
+                snprintf( outlin, mLin,
+                          "   %9.6f {(10)(%d)sp()} %%{(%g)}\n", 
+                          A->pc(Tacks[i]), (int)(log10(Tacks[i])),
+                          (float) Tacks[i]);
+                ps_accu.push_back( outlin );
+            }
+        } else {
+            for (i=0; i<ntack; i++) {
+                snprintf( outlin, mLin, "   %9.6f {(%g)}\n", 
+                          A->pc(Tacks[i]), (float) Tacks[i]);
+                ps_accu.push_back( outlin );
+            }
         }
+        ps_accu.push_back( "  ] SetTacVec\n" );
     }
-    ps_accu.push_back( "  ] SetTacVec\n" );
     snprintf( outlin, mLin, "  %g %g %d %d SetTicVec%s\n", 
               A->pc(ticklim[0]), A->pc(ticklim[1]), ntack+2, ntpt,
               (A->logflag? "Log" : "Lin"));
-- 
GitLab