Changeset 192 for trunk/src/sh_unix.c
- Timestamp:
- Nov 12, 2008, 12:37:00 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/sh_unix.c
r185 r192 3281 3281 struct stat fbuf; 3282 3282 int stat_return; 3283 int stat_errno = 0; 3283 3284 3284 3285 ShFileType type; … … 3293 3294 3294 3295 SL_TICKET rval_open; 3296 int err_open = 0; 3297 3295 3298 int fd; 3296 3299 int fstat_return; 3300 int fstat_errno = 0; 3301 3297 3302 sh_string * content = NULL; 3298 3303 … … 3316 3321 path /* theFile->fullpath */, &buf); 3317 3322 3323 if (stat_return) 3324 stat_errno = errno; 3325 3318 3326 fd = -1; 3319 3327 fstat_return = -1; … … 3325 3333 { 3326 3334 rval_open = sl_open_fastread (path /* theFile->fullpath */, SL_YESPRIV); 3335 if (SL_ISERROR(rval_open)) 3336 err_open = errno; 3327 3337 3328 3338 alert_timeout = 120; /* this is per 8K block now ! */ … … 3352 3362 3353 3363 if (fd >= 0) 3354 fstat_return = retry_fstat (FIL__, __LINE__, fd, &fbuf); 3364 { 3365 fstat_return = retry_fstat (FIL__, __LINE__, fd, &fbuf); 3366 if (fstat_return) 3367 fstat_errno = errno; 3368 } 3355 3369 else 3356 fd = -1; 3370 { 3371 fd = -1; 3372 } 3357 3373 3358 3374 … … 3370 3386 if (S_FALSE == sh_ignore_chk_del(theFile->fullpath)) { 3371 3387 char errbuf[SH_ERRBUF_SIZE]; 3388 uid_t euid; 3389 (void) sl_get_euid(&euid); 3372 3390 tmp2 = sh_util_safe_name (theFile->fullpath); 3373 sh_error_handle (level, FIL__, __LINE__, stat_return, MSG_FI_LSTAT, 3374 sh_error_message (stat_return, errbuf, sizeof(errbuf)), 3391 sh_error_handle (level, FIL__, __LINE__, stat_return, MSG_FI_STAT, 3392 _("lstat"), 3393 sh_error_message (stat_errno, errbuf, sizeof(errbuf)), 3394 (long) euid, 3375 3395 tmp2); 3376 3396 SH_FREE(tmp2); … … 3500 3520 */ 3501 3521 3502 else /* fstat_return != 0 or !S_ISREG(fbuf.st_mode) */3522 else /* fstat_return != 0 or !S_ISREG(fbuf.st_mode) or open() failed */ 3503 3523 { 3504 3524 uid_t euid; 3505 int fstat_errval = errno; 3525 3506 3526 if (fileHash != NULL) 3507 3527 sl_strlcpy(fileHash, SH_KEY_NULL, KEY_LEN+1); … … 3513 3533 if (fstat_return != 0) 3514 3534 { 3535 char errbuf[SH_ERRBUF_SIZE]; 3515 3536 (void) sl_get_euid(&euid); 3516 sh_error_handle (level, FIL__, __LINE__, fstat_errval, 3517 MSG_E_ACCESS, (long) euid, tmp2); 3537 3538 sh_error_handle (level, FIL__, __LINE__, stat_return, MSG_FI_STAT, 3539 _("fstat"), 3540 sh_error_message (fstat_errno, errbuf, sizeof(errbuf)), 3541 (long) euid, 3542 tmp2); 3518 3543 } 3519 3544 else if (!S_ISREG(fbuf.st_mode)) 3520 3545 { 3521 sh_error_handle (level, FIL__, __LINE__, fstat_err val,3546 sh_error_handle (level, FIL__, __LINE__, fstat_errno, 3522 3547 MSG_E_NOTREG, tmp2); 3523 3548 } 3524 3549 else 3525 3550 { 3526 sh_error_handle (level, FIL__, __LINE__, fstat_errval, 3527 MSG_E_READ, tmp2); 3551 char errbuf[SH_ERRBUF_SIZE]; 3552 char errbuf2[SH_ERRBUF_SIZE]; 3553 sl_strlcpy(errbuf, sl_error_string(rval_open), sizeof(errbuf)); 3554 sh_error_message(err_open, errbuf2, sizeof(errbuf2)); 3555 sh_error_handle (level, FIL__, __LINE__, err_open, 3556 MSG_E_READ, errbuf, errbuf2, tmp2); 3528 3557 } 3529 3558 SH_FREE(tmp2); … … 3737 3766 if (stat_return != ENOENT) 3738 3767 { 3768 uid_t euid; 3739 3769 char errbuf[SH_ERRBUF_SIZE]; 3770 3771 (void) sl_get_euid(&euid); 3740 3772 sh_error_handle (level, FIL__, __LINE__, stat_return, 3741 MSG_FI_LSTAT, 3773 MSG_FI_STAT, 3774 _("lstat"), 3742 3775 sh_error_message (stat_return,errbuf, sizeof(errbuf)), 3776 (long) euid, 3743 3777 tmp2); 3744 3778 }
Note:
See TracChangeset
for help on using the changeset viewer.