From e50298980c9fd9e9c75102c16c56d301a117295e Mon Sep 17 00:00:00 2001
From: "stewart@mysql.com" <>
Date: Wed, 15 Feb 2006 16:37:09 +1100
Subject: [PATCH] BUG#17411 cannot have path longer than 128 characters

Use the POSIX limits.h define of PATH_MAX for maximum path length.

This has been being hit in pushbuild
---
 ndb/include/util/File.hpp          |  4 +---
 ndb/src/common/portlib/NdbConfig.c | 34 +++++++++++++++---------------
 ndb/src/common/util/File.cpp       |  4 ++--
 3 files changed, 20 insertions(+), 22 deletions(-)

diff --git a/ndb/include/util/File.hpp b/ndb/include/util/File.hpp
index 3ed0ad7a6f9..53ea88e0f52 100644
--- a/ndb/include/util/File.hpp
+++ b/ndb/include/util/File.hpp
@@ -191,10 +191,8 @@ public:
   int flush() const;
 
 private:
-  STATIC_CONST( MAX_FILE_NAME_SIZE = 128 );
-
   FILE* m_file;
-  char m_fileName[MAX_FILE_NAME_SIZE];
+  char m_fileName[PATH_MAX];
   const char* m_fileMode;
   /* Prohibit */
   File_class (const File_class& aCopy);
diff --git a/ndb/src/common/portlib/NdbConfig.c b/ndb/src/common/portlib/NdbConfig.c
index b275143646f..c3f37727024 100644
--- a/ndb/src/common/portlib/NdbConfig.c
+++ b/ndb/src/common/portlib/NdbConfig.c
@@ -64,11 +64,11 @@ NdbConfig_NdbCfgName(int with_ndb_home){
   int len= 0;
 
   if (with_ndb_home) {
-    buf= NdbConfig_AllocHomePath(128);
+    buf= NdbConfig_AllocHomePath(PATH_MAX);
     len= strlen(buf);
   } else
-    buf= NdbMem_Allocate(128);
-  basestring_snprintf(buf+len, 128, "Ndb.cfg");
+    buf= NdbMem_Allocate(PATH_MAX);
+  basestring_snprintf(buf+len, PATH_MAX, "Ndb.cfg");
   return buf;
 }
 
@@ -90,56 +90,56 @@ char *get_prefix_buf(int len, int node_id)
 
 char* 
 NdbConfig_ErrorFileName(int node_id){
-  char *buf= get_prefix_buf(128, node_id);
+  char *buf= get_prefix_buf(PATH_MAX, node_id);
   int len= strlen(buf);
-  basestring_snprintf(buf+len, 128, "_error.log");
+  basestring_snprintf(buf+len, PATH_MAX, "_error.log");
   return buf;
 }
 
 char*
 NdbConfig_ClusterLogFileName(int node_id){
-  char *buf= get_prefix_buf(128, node_id);
+  char *buf= get_prefix_buf(PATH_MAX, node_id);
   int len= strlen(buf);
-  basestring_snprintf(buf+len, 128, "_cluster.log");
+  basestring_snprintf(buf+len, PATH_MAX, "_cluster.log");
   return buf;
 }
 
 char*
 NdbConfig_SignalLogFileName(int node_id){
-  char *buf= get_prefix_buf(128, node_id);
+  char *buf= get_prefix_buf(PATH_MAX, node_id);
   int len= strlen(buf);
-  basestring_snprintf(buf+len, 128, "_signal.log");
+  basestring_snprintf(buf+len, PATH_MAX, "_signal.log");
   return buf;
 }
 
 char*
 NdbConfig_TraceFileName(int node_id, int file_no){
-  char *buf= get_prefix_buf(128, node_id);
+  char *buf= get_prefix_buf(PATH_MAX, node_id);
   int len= strlen(buf);
-  basestring_snprintf(buf+len, 128, "_trace.log.%u", file_no);
+  basestring_snprintf(buf+len, PATH_MAX, "_trace.log.%u", file_no);
   return buf;
 }
 
 char*
 NdbConfig_NextTraceFileName(int node_id){
-  char *buf= get_prefix_buf(128, node_id);
+  char *buf= get_prefix_buf(PATH_MAX, node_id);
   int len= strlen(buf);
-  basestring_snprintf(buf+len, 128, "_trace.log.next");
+  basestring_snprintf(buf+len, PATH_MAX, "_trace.log.next");
   return buf;
 }
 
 char*
 NdbConfig_PidFileName(int node_id){
-  char *buf= get_prefix_buf(128, node_id);
+  char *buf= get_prefix_buf(PATH_MAX, node_id);
   int len= strlen(buf);
-  basestring_snprintf(buf+len, 128, ".pid");
+  basestring_snprintf(buf+len, PATH_MAX, ".pid");
   return buf;
 }
 
 char*
 NdbConfig_StdoutFileName(int node_id){
-  char *buf= get_prefix_buf(128, node_id);
+  char *buf= get_prefix_buf(PATH_MAX, node_id);
   int len= strlen(buf);
-  basestring_snprintf(buf+len, 128, "_out.log");
+  basestring_snprintf(buf+len, PATH_MAX, "_out.log");
   return buf;
 }
diff --git a/ndb/src/common/util/File.cpp b/ndb/src/common/util/File.cpp
index e514ad8e122..52ad3a4a51e 100644
--- a/ndb/src/common/util/File.cpp
+++ b/ndb/src/common/util/File.cpp
@@ -67,7 +67,7 @@ File_class::File_class(const char* aFileName, const char* mode) :
   m_file(NULL), 
   m_fileMode(mode)
 {
-  BaseString::snprintf(m_fileName, MAX_FILE_NAME_SIZE, aFileName);
+  BaseString::snprintf(m_fileName, PATH_MAX, aFileName);
 }
 
 bool
@@ -83,7 +83,7 @@ File_class::open(const char* aFileName, const char* mode)
     /**
      * Only copy if it's not the same string
      */
-    BaseString::snprintf(m_fileName, MAX_FILE_NAME_SIZE, aFileName);
+    BaseString::snprintf(m_fileName, PATH_MAX, aFileName);
   }
   m_fileMode = mode;
   bool rc = true;