dso_vms needs to add the .EXE extension if there is none already
Reviewed-by: Rich Salz <rsalz@openssl.org>
(cherry picked from commit be7b1097e2
)
This commit is contained in:
parent
6ca1dc9737
commit
bc1544d8c5
1 changed files with 15 additions and 1 deletions
|
@ -172,6 +172,7 @@ static int vms_load(DSO *dso)
|
|||
# endif /* __INITIAL_POINTER_SIZE == 64 */
|
||||
|
||||
const char *sp1, *sp2; /* Search result */
|
||||
const char *ext = NULL; /* possible extension to add */
|
||||
|
||||
if (filename == NULL) {
|
||||
DSOerr(DSO_F_VMS_LOAD, DSO_R_NO_FILENAME);
|
||||
|
@ -213,12 +214,20 @@ static int vms_load(DSO *dso)
|
|||
sp1++; /* The byte after the found character */
|
||||
/* Now, let's see if there's a type, and save the position in sp2 */
|
||||
sp2 = strchr(sp1, '.');
|
||||
/*
|
||||
* If there is a period and the next character is a semi-colon,
|
||||
* we need to add an extension
|
||||
*/
|
||||
if (sp2 != NULL && sp2[1] == ';')
|
||||
ext = ".EXE";
|
||||
/*
|
||||
* If we found it, that's where we'll cut. Otherwise, look for a version
|
||||
* number and save the position in sp2
|
||||
*/
|
||||
if (sp2 == NULL)
|
||||
if (sp2 == NULL) {
|
||||
sp2 = strchr(sp1, ';');
|
||||
ext = ".EXE";
|
||||
}
|
||||
/*
|
||||
* If there was still nothing to find, set sp2 to point at the end of the
|
||||
* string
|
||||
|
@ -244,6 +253,11 @@ static int vms_load(DSO *dso)
|
|||
|
||||
strncpy(p->imagename, filename, sp1 - filename);
|
||||
p->imagename[sp1 - filename] = '\0';
|
||||
if (ext) {
|
||||
strcat(p->imagename, ext);
|
||||
if (*sp2 == '.')
|
||||
sp2++;
|
||||
}
|
||||
strcat(p->imagename, sp2);
|
||||
|
||||
p->filename_dsc.dsc$w_length = strlen(p->filename);
|
||||
|
|
Loading…
Reference in a new issue