In vms.c, routine rmsexpand, if you pass it a UNIX string, the code was
incorrectly using a copy of the string that was not null terminated, and
also potentially shortened so that it could not be converted back to UNIX.
The attached patch fixes this.
-John
[EMAIL PROTECTED]
Personal Opinion Only
--- /rsync_root/perl/vms/vms.c Tue Jul 31 22:26:48 2007
+++ vms/vms.c Tue Jul 31 23:11:04 2007
@@ -5077,7 +5077,7 @@
if (!rms_nam_rsll(mynam)) {
if (isunix) {
- if (do_tounixspec(esa,outbuf,0,fs_utf8) == NULL) {
+ if (do_tounixspec(tbuf, outbuf ,0 , fs_utf8) == NULL) {
if (out) Safefree(out);
if (esal != NULL)
PerlMem_free(esal);
@@ -5087,7 +5087,7 @@
return NULL;
}
}
- else strcpy(outbuf,esa);
+ else strcpy(outbuf, tbuf);
}
else if (isunix) {
tmpfspec = PerlMem_malloc(VMS_MAXRSS);