diff options
| author | djm <> | 2011-11-03 02:34:33 +0000 |
|---|---|---|
| committer | djm <> | 2011-11-03 02:34:33 +0000 |
| commit | fc7396568e61a510b9336d6c220aaa889c03060f (patch) | |
| tree | a8fc08e33aecdd21cb07aa47c8a3a9db715f2ef3 /src/lib/libcrypto/dso | |
| parent | 1e8701dd2507fadf6d232d93eb4299a8b79c66d5 (diff) | |
| download | openbsd-fc7396568e61a510b9336d6c220aaa889c03060f.tar.gz openbsd-fc7396568e61a510b9336d6c220aaa889c03060f.tar.bz2 openbsd-fc7396568e61a510b9336d6c220aaa889c03060f.zip | |
openssl-1.0.0e: resolve conflicts
Diffstat (limited to 'src/lib/libcrypto/dso')
| -rw-r--r-- | src/lib/libcrypto/dso/dso_dlfcn.c | 1 | ||||
| -rw-r--r-- | src/lib/libcrypto/dso/dso_vms.c | 179 |
2 files changed, 101 insertions, 79 deletions
diff --git a/src/lib/libcrypto/dso/dso_dlfcn.c b/src/lib/libcrypto/dso/dso_dlfcn.c index 578a20d91d..e78004903c 100644 --- a/src/lib/libcrypto/dso/dso_dlfcn.c +++ b/src/lib/libcrypto/dso/dso_dlfcn.c | |||
| @@ -85,6 +85,7 @@ DSO_METHOD *DSO_METHOD_dlfcn(void) | |||
| 85 | # define HAVE_DLINFO 1 | 85 | # define HAVE_DLINFO 1 |
| 86 | # if defined(_AIX) || defined(__CYGWIN__) || \ | 86 | # if defined(_AIX) || defined(__CYGWIN__) || \ |
| 87 | defined(__SCO_VERSION__) || defined(_SCO_ELF) || \ | 87 | defined(__SCO_VERSION__) || defined(_SCO_ELF) || \ |
| 88 | (defined(__osf__) && !defined(RTLD_NEXT)) || \ | ||
| 88 | (defined(__OpenBSD__) && (!defined(__ELF__) || !defined(RTLD_SELF))) | 89 | (defined(__OpenBSD__) && (!defined(__ELF__) || !defined(RTLD_SELF))) |
| 89 | # undef HAVE_DLINFO | 90 | # undef HAVE_DLINFO |
| 90 | # endif | 91 | # endif |
diff --git a/src/lib/libcrypto/dso/dso_vms.c b/src/lib/libcrypto/dso/dso_vms.c index 321512772a..eee20d14f1 100644 --- a/src/lib/libcrypto/dso/dso_vms.c +++ b/src/lib/libcrypto/dso/dso_vms.c | |||
| @@ -68,8 +68,20 @@ | |||
| 68 | #include <stsdef.h> | 68 | #include <stsdef.h> |
| 69 | #include <descrip.h> | 69 | #include <descrip.h> |
| 70 | #include <starlet.h> | 70 | #include <starlet.h> |
| 71 | #include "vms_rms.h" | ||
| 71 | #endif | 72 | #endif |
| 72 | 73 | ||
| 74 | /* Some compiler options may mask the declaration of "_malloc32". */ | ||
| 75 | #if __INITIAL_POINTER_SIZE && defined _ANSI_C_SOURCE | ||
| 76 | # if __INITIAL_POINTER_SIZE == 64 | ||
| 77 | # pragma pointer_size save | ||
| 78 | # pragma pointer_size 32 | ||
| 79 | void * _malloc32 (__size_t); | ||
| 80 | # pragma pointer_size restore | ||
| 81 | # endif /* __INITIAL_POINTER_SIZE == 64 */ | ||
| 82 | #endif /* __INITIAL_POINTER_SIZE && defined _ANSI_C_SOURCE */ | ||
| 83 | |||
| 84 | |||
| 73 | #ifndef OPENSSL_SYS_VMS | 85 | #ifndef OPENSSL_SYS_VMS |
| 74 | DSO_METHOD *DSO_METHOD_vms(void) | 86 | DSO_METHOD *DSO_METHOD_vms(void) |
| 75 | { | 87 | { |
| @@ -121,14 +133,13 @@ typedef struct dso_internal_st | |||
| 121 | /* This should contain the name only, no directory, | 133 | /* This should contain the name only, no directory, |
| 122 | * no extension, nothing but a name. */ | 134 | * no extension, nothing but a name. */ |
| 123 | struct dsc$descriptor_s filename_dsc; | 135 | struct dsc$descriptor_s filename_dsc; |
| 124 | char filename[FILENAME_MAX+1]; | 136 | char filename[ NAMX_MAXRSS+ 1]; |
| 125 | /* This contains whatever is not in filename, if needed. | 137 | /* This contains whatever is not in filename, if needed. |
| 126 | * Normally not defined. */ | 138 | * Normally not defined. */ |
| 127 | struct dsc$descriptor_s imagename_dsc; | 139 | struct dsc$descriptor_s imagename_dsc; |
| 128 | char imagename[FILENAME_MAX+1]; | 140 | char imagename[ NAMX_MAXRSS+ 1]; |
| 129 | } DSO_VMS_INTERNAL; | 141 | } DSO_VMS_INTERNAL; |
| 130 | 142 | ||
| 131 | |||
| 132 | DSO_METHOD *DSO_METHOD_vms(void) | 143 | DSO_METHOD *DSO_METHOD_vms(void) |
| 133 | { | 144 | { |
| 134 | return(&dso_meth_vms); | 145 | return(&dso_meth_vms); |
| @@ -139,7 +150,22 @@ static int vms_load(DSO *dso) | |||
| 139 | void *ptr = NULL; | 150 | void *ptr = NULL; |
| 140 | /* See applicable comments in dso_dl.c */ | 151 | /* See applicable comments in dso_dl.c */ |
| 141 | char *filename = DSO_convert_filename(dso, NULL); | 152 | char *filename = DSO_convert_filename(dso, NULL); |
| 142 | DSO_VMS_INTERNAL *p; | 153 | |
| 154 | /* Ensure 32-bit pointer for "p", and appropriate malloc() function. */ | ||
| 155 | #if __INITIAL_POINTER_SIZE == 64 | ||
| 156 | # define DSO_MALLOC _malloc32 | ||
| 157 | # pragma pointer_size save | ||
| 158 | # pragma pointer_size 32 | ||
| 159 | #else /* __INITIAL_POINTER_SIZE == 64 */ | ||
| 160 | # define DSO_MALLOC OPENSSL_malloc | ||
| 161 | #endif /* __INITIAL_POINTER_SIZE == 64 [else] */ | ||
| 162 | |||
| 163 | DSO_VMS_INTERNAL *p = NULL; | ||
| 164 | |||
| 165 | #if __INITIAL_POINTER_SIZE == 64 | ||
| 166 | # pragma pointer_size restore | ||
| 167 | #endif /* __INITIAL_POINTER_SIZE == 64 */ | ||
| 168 | |||
| 143 | const char *sp1, *sp2; /* Search result */ | 169 | const char *sp1, *sp2; /* Search result */ |
| 144 | 170 | ||
| 145 | if(filename == NULL) | 171 | if(filename == NULL) |
| @@ -192,7 +218,7 @@ static int vms_load(DSO *dso) | |||
| 192 | goto err; | 218 | goto err; |
| 193 | } | 219 | } |
| 194 | 220 | ||
| 195 | p = (DSO_VMS_INTERNAL *)OPENSSL_malloc(sizeof(DSO_VMS_INTERNAL)); | 221 | p = DSO_MALLOC(sizeof(DSO_VMS_INTERNAL)); |
| 196 | if(p == NULL) | 222 | if(p == NULL) |
| 197 | { | 223 | { |
| 198 | DSOerr(DSO_F_VMS_LOAD,ERR_R_MALLOC_FAILURE); | 224 | DSOerr(DSO_F_VMS_LOAD,ERR_R_MALLOC_FAILURE); |
| @@ -290,18 +316,38 @@ void vms_bind_sym(DSO *dso, const char *symname, void **sym) | |||
| 290 | int flags = 0; | 316 | int flags = 0; |
| 291 | #endif | 317 | #endif |
| 292 | struct dsc$descriptor_s symname_dsc; | 318 | struct dsc$descriptor_s symname_dsc; |
| 293 | *sym = NULL; | ||
| 294 | 319 | ||
| 295 | symname_dsc.dsc$w_length = strlen(symname); | 320 | /* Arrange 32-bit pointer to (copied) string storage, if needed. */ |
| 296 | symname_dsc.dsc$b_dtype = DSC$K_DTYPE_T; | 321 | #if __INITIAL_POINTER_SIZE == 64 |
| 297 | symname_dsc.dsc$b_class = DSC$K_CLASS_S; | 322 | # define SYMNAME symname_32p |
| 298 | symname_dsc.dsc$a_pointer = (char *)symname; /* The cast is needed */ | 323 | # pragma pointer_size save |
| 324 | # pragma pointer_size 32 | ||
| 325 | char *symname_32p; | ||
| 326 | # pragma pointer_size restore | ||
| 327 | char symname_32[ NAMX_MAXRSS+ 1]; | ||
| 328 | #else /* __INITIAL_POINTER_SIZE == 64 */ | ||
| 329 | # define SYMNAME ((char *) symname) | ||
| 330 | #endif /* __INITIAL_POINTER_SIZE == 64 [else] */ | ||
| 331 | |||
| 332 | *sym = NULL; | ||
| 299 | 333 | ||
| 300 | if((dso == NULL) || (symname == NULL)) | 334 | if((dso == NULL) || (symname == NULL)) |
| 301 | { | 335 | { |
| 302 | DSOerr(DSO_F_VMS_BIND_SYM,ERR_R_PASSED_NULL_PARAMETER); | 336 | DSOerr(DSO_F_VMS_BIND_SYM,ERR_R_PASSED_NULL_PARAMETER); |
| 303 | return; | 337 | return; |
| 304 | } | 338 | } |
| 339 | |||
| 340 | #if __INITIAL_POINTER_SIZE == 64 | ||
| 341 | /* Copy the symbol name to storage with a 32-bit pointer. */ | ||
| 342 | symname_32p = symname_32; | ||
| 343 | strcpy( symname_32p, symname); | ||
| 344 | #endif /* __INITIAL_POINTER_SIZE == 64 [else] */ | ||
| 345 | |||
| 346 | symname_dsc.dsc$w_length = strlen(SYMNAME); | ||
| 347 | symname_dsc.dsc$b_dtype = DSC$K_DTYPE_T; | ||
| 348 | symname_dsc.dsc$b_class = DSC$K_CLASS_S; | ||
| 349 | symname_dsc.dsc$a_pointer = SYMNAME; | ||
| 350 | |||
| 305 | if(sk_void_num(dso->meth_data) < 1) | 351 | if(sk_void_num(dso->meth_data) < 1) |
| 306 | { | 352 | { |
| 307 | DSOerr(DSO_F_VMS_BIND_SYM,DSO_R_STACK_ERROR); | 353 | DSOerr(DSO_F_VMS_BIND_SYM,DSO_R_STACK_ERROR); |
| @@ -372,64 +418,60 @@ static DSO_FUNC_TYPE vms_bind_func(DSO *dso, const char *symname) | |||
| 372 | return sym; | 418 | return sym; |
| 373 | } | 419 | } |
| 374 | 420 | ||
| 421 | |||
| 375 | static char *vms_merger(DSO *dso, const char *filespec1, const char *filespec2) | 422 | static char *vms_merger(DSO *dso, const char *filespec1, const char *filespec2) |
| 376 | { | 423 | { |
| 377 | int status; | 424 | int status; |
| 378 | int filespec1len, filespec2len; | 425 | int filespec1len, filespec2len; |
| 379 | struct FAB fab; | 426 | struct FAB fab; |
| 380 | #ifdef NAML$C_MAXRSS | 427 | struct NAMX_STRUCT nam; |
| 381 | struct NAML nam; | 428 | char esa[ NAMX_MAXRSS+ 1]; |
| 382 | char esa[NAML$C_MAXRSS]; | ||
| 383 | #else | ||
| 384 | struct NAM nam; | ||
| 385 | char esa[NAM$C_MAXRSS]; | ||
| 386 | #endif | ||
| 387 | char *merged; | 429 | char *merged; |
| 388 | 430 | ||
| 431 | /* Arrange 32-bit pointer to (copied) string storage, if needed. */ | ||
| 432 | #if __INITIAL_POINTER_SIZE == 64 | ||
| 433 | # define FILESPEC1 filespec1_32p; | ||
| 434 | # define FILESPEC2 filespec2_32p; | ||
| 435 | # pragma pointer_size save | ||
| 436 | # pragma pointer_size 32 | ||
| 437 | char *filespec1_32p; | ||
| 438 | char *filespec2_32p; | ||
| 439 | # pragma pointer_size restore | ||
| 440 | char filespec1_32[ NAMX_MAXRSS+ 1]; | ||
| 441 | char filespec2_32[ NAMX_MAXRSS+ 1]; | ||
| 442 | #else /* __INITIAL_POINTER_SIZE == 64 */ | ||
| 443 | # define FILESPEC1 ((char *) filespec1) | ||
| 444 | # define FILESPEC2 ((char *) filespec2) | ||
| 445 | #endif /* __INITIAL_POINTER_SIZE == 64 [else] */ | ||
| 446 | |||
| 389 | if (!filespec1) filespec1 = ""; | 447 | if (!filespec1) filespec1 = ""; |
| 390 | if (!filespec2) filespec2 = ""; | 448 | if (!filespec2) filespec2 = ""; |
| 391 | filespec1len = strlen(filespec1); | 449 | filespec1len = strlen(filespec1); |
| 392 | filespec2len = strlen(filespec2); | 450 | filespec2len = strlen(filespec2); |
| 393 | 451 | ||
| 452 | #if __INITIAL_POINTER_SIZE == 64 | ||
| 453 | /* Copy the file names to storage with a 32-bit pointer. */ | ||
| 454 | filespec1_32p = filespec1_32; | ||
| 455 | filespec2_32p = filespec2_32; | ||
| 456 | strcpy( filespec1_32p, filespec1); | ||
| 457 | strcpy( filespec2_32p, filespec2); | ||
| 458 | #endif /* __INITIAL_POINTER_SIZE == 64 [else] */ | ||
| 459 | |||
| 394 | fab = cc$rms_fab; | 460 | fab = cc$rms_fab; |
| 395 | #ifdef NAML$C_MAXRSS | 461 | nam = CC_RMS_NAMX; |
| 396 | nam = cc$rms_naml; | ||
| 397 | #else | ||
| 398 | nam = cc$rms_nam; | ||
| 399 | #endif | ||
| 400 | 462 | ||
| 401 | fab.fab$l_fna = (char *)filespec1; | 463 | FAB_OR_NAML( fab, nam).FAB_OR_NAML_FNA = FILESPEC1; |
| 402 | fab.fab$b_fns = filespec1len; | 464 | FAB_OR_NAML( fab, nam).FAB_OR_NAML_FNS = filespec1len; |
| 403 | fab.fab$l_dna = (char *)filespec2; | 465 | FAB_OR_NAML( fab, nam).FAB_OR_NAML_DNA = FILESPEC2; |
| 404 | fab.fab$b_dns = filespec2len; | 466 | FAB_OR_NAML( fab, nam).FAB_OR_NAML_DNS = filespec2len; |
| 405 | #ifdef NAML$C_MAXRSS | 467 | NAMX_DNA_FNA_SET( fab) |
| 406 | if (filespec1len > NAM$C_MAXRSS) | 468 | |
| 407 | { | 469 | nam.NAMX_ESA = esa; |
| 408 | fab.fab$l_fna = 0; | 470 | nam.NAMX_ESS = NAMX_MAXRSS; |
| 409 | fab.fab$b_fns = 0; | 471 | nam.NAMX_NOP = NAM$M_SYNCHK | NAM$M_PWD; |
| 410 | nam.naml$l_long_filename = (char *)filespec1; | 472 | SET_NAMX_NO_SHORT_UPCASE( nam); |
| 411 | nam.naml$l_long_filename_size = filespec1len; | 473 | |
| 412 | } | 474 | fab.FAB_NAMX = &nam; |
| 413 | if (filespec2len > NAM$C_MAXRSS) | ||
| 414 | { | ||
| 415 | fab.fab$l_dna = 0; | ||
| 416 | fab.fab$b_dns = 0; | ||
| 417 | nam.naml$l_long_defname = (char *)filespec2; | ||
| 418 | nam.naml$l_long_defname_size = filespec2len; | ||
| 419 | } | ||
| 420 | nam.naml$l_esa = esa; | ||
| 421 | nam.naml$b_ess = NAM$C_MAXRSS; | ||
| 422 | nam.naml$l_long_expand = esa; | ||
| 423 | nam.naml$l_long_expand_alloc = sizeof(esa); | ||
| 424 | nam.naml$b_nop = NAM$M_SYNCHK | NAM$M_PWD; | ||
| 425 | nam.naml$v_no_short_upcase = 1; | ||
| 426 | fab.fab$l_naml = &nam; | ||
| 427 | #else | ||
| 428 | nam.nam$l_esa = esa; | ||
| 429 | nam.nam$b_ess = NAM$C_MAXRSS; | ||
| 430 | nam.nam$b_nop = NAM$M_SYNCHK | NAM$M_PWD; | ||
| 431 | fab.fab$l_nam = &nam; | ||
| 432 | #endif | ||
| 433 | 475 | ||
| 434 | status = sys$parse(&fab, 0, 0); | 476 | status = sys$parse(&fab, 0, 0); |
| 435 | 477 | ||
| @@ -460,33 +502,12 @@ static char *vms_merger(DSO *dso, const char *filespec1, const char *filespec2) | |||
| 460 | } | 502 | } |
| 461 | return(NULL); | 503 | return(NULL); |
| 462 | } | 504 | } |
| 463 | #ifdef NAML$C_MAXRSS | 505 | |
| 464 | if (nam.naml$l_long_expand_size) | 506 | merged = OPENSSL_malloc( nam.NAMX_ESL+ 1); |
| 465 | { | ||
| 466 | merged = OPENSSL_malloc(nam.naml$l_long_expand_size + 1); | ||
| 467 | if(!merged) | ||
| 468 | goto malloc_err; | ||
| 469 | strncpy(merged, nam.naml$l_long_expand, | ||
| 470 | nam.naml$l_long_expand_size); | ||
| 471 | merged[nam.naml$l_long_expand_size] = '\0'; | ||
| 472 | } | ||
| 473 | else | ||
| 474 | { | ||
| 475 | merged = OPENSSL_malloc(nam.naml$b_esl + 1); | ||
| 476 | if(!merged) | ||
| 477 | goto malloc_err; | ||
| 478 | strncpy(merged, nam.naml$l_esa, | ||
| 479 | nam.naml$b_esl); | ||
| 480 | merged[nam.naml$b_esl] = '\0'; | ||
| 481 | } | ||
| 482 | #else | ||
| 483 | merged = OPENSSL_malloc(nam.nam$b_esl + 1); | ||
| 484 | if(!merged) | 507 | if(!merged) |
| 485 | goto malloc_err; | 508 | goto malloc_err; |
| 486 | strncpy(merged, nam.nam$l_esa, | 509 | strncpy( merged, nam.NAMX_ESA, nam.NAMX_ESL); |
| 487 | nam.nam$b_esl); | 510 | merged[ nam.NAMX_ESL] = '\0'; |
| 488 | merged[nam.nam$b_esl] = '\0'; | ||
| 489 | #endif | ||
| 490 | return(merged); | 511 | return(merged); |
| 491 | malloc_err: | 512 | malloc_err: |
| 492 | DSOerr(DSO_F_VMS_MERGER, | 513 | DSOerr(DSO_F_VMS_MERGER, |
