In vms.c, mp_do_fileify_dirspec, the char array "esa" is being filled in
by a routine that does not add null terminators to strings.
It is being referenced by C library functions that assume the presence
of such a null terminator before the terminator is set at the end of the
string.
For some reason, this was only being exposed on my system by doing a mmk
realclean on a threaded build.
-John
[EMAIL PROTECTED]
Personal Opinion Only
--- /rsync_root/perl/vms/vms.c Wed Jun 14 23:27:42 2006
+++ vms/vms.c Sun Jun 25 21:29:19 2006
@@ -5148,6 +5148,7 @@
}
}
}
+ esa[rms_nam_esll(dirnam)] = '\0';
if (!rms_is_nam_fnb(dirnam, (NAM$M_EXP_DEV | NAM$M_EXP_DIR))) {
cp1 = strchr(esa,']');
if (!cp1) cp1 = strchr(esa,'>');
@@ -5170,7 +5171,7 @@
return NULL;
}
}
- esa[rms_nam_esll(dirnam)] = '\0';
+
if (rms_is_nam_fnb(dirnam, NAM$M_EXP_NAME)) {
/* They provided at least the name; we added the type, if necessary, */
if (buf) retspec = buf; /* in sys$parse() */