@@ -117,6 +117,7 @@ void* RECORDER_POSIX_DECL(mmap)(void *addr, size_t length, int prot, int flags,
117
117
char * * args = assemble_args_list (6 , ptoa (addr ), itoa (length ), itoa (prot ), itoa (flags ), itoa (fd ), itoa (offset ));
118
118
RECORDER_INTERCEPTOR (6 , args );
119
119
}
120
+
120
121
int RECORDER_POSIX_DECL (msync )(void * addr , size_t length , int flags ) {
121
122
RECORDER_INTERCEPTOR_NOIO (int , msync , (addr , length , flags ));
122
123
char * * args = assemble_args_list (3 , ptoa (addr ), itoa (length ), itoa (flags ));
@@ -441,13 +442,8 @@ int RECORDER_POSIX_DECL(closedir)(DIR *dir) {
441
442
/*
442
443
void RECORDER_POSIX_DECL(rewinddir)(DIR *dir) {
443
444
// TODO
444
- char log_text[TRACE_LEN];
445
- sprintf(log_text, "rewinddir (%p)", dir);
446
- RECORDER_INTERCEPTOR(rewinddir, NULL, (dir), NULL, 0, 0, log_text)
447
445
448
446
}
449
- */
450
- /*
451
447
int RECORDER_POSIX_DECL(__xmknod)(int ver, const char *path, mode_t mode, dev_t dev) {
452
448
RECORDER_INTERCEPTOR_NOIO(int, __xmknod, (ver, path, mode, dev));
453
449
char** args = assemble_args_list(4, itoa(ver), realrealpath(path), itoa(mode), itoa(dev));
@@ -459,11 +455,12 @@ int RECORDER_POSIX_DECL(__xmknodat)(int ver, int fd, const char *path, mode_t mo
459
455
RECORDER_INTERCEPTOR(5, args);
460
456
}
461
457
*/
458
+
462
459
// Advanced File Operations
463
460
// TODO: third argument
464
461
#ifndef DISABLE_FCNTL_TRACE
465
462
int RECORDER_POSIX_DECL (fcntl )(int fd , int cmd , ...) {
466
- if (cmd == F_DUPFD || cmd == F_SETFD || cmd == F_SETFL || cmd == F_SETOWN ) { // arg: int
463
+ if (cmd == F_DUPFD || cmd == F_DUPFD_CLOEXEC || cmd == F_SETFD || cmd == F_SETFL || cmd == F_SETOWN ) { // arg: int
467
464
va_list arg ;
468
465
va_start (arg , cmd );
469
466
int val = va_arg (arg , int );
@@ -483,7 +480,7 @@ int RECORDER_POSIX_DECL(fcntl)(int fd, int cmd, ...) {
483
480
RECORDER_INTERCEPTOR_NOIO (int , fcntl , (fd , cmd , lk ));
484
481
char * * args = assemble_args_list (3 , itoa (fd ), itoa (cmd ), itoa (lk -> l_type ));
485
482
RECORDER_INTERCEPTOR (3 , args );
486
- } else { // assume arg: void
483
+ } else { // assume arg: void, cmd==F_GETOWN_EX || cmd==F_SETOWN_EX ||cmd==F_GETSIG || cmd==F_SETSIG)
487
484
RECORDER_INTERCEPTOR_NOIO (int , fcntl , (fd , cmd ));
488
485
char * * args = assemble_args_list (2 , itoa (fd ), itoa (cmd ));
489
486
RECORDER_INTERCEPTOR (2 , args );
@@ -519,6 +516,7 @@ mode_t RECORDER_POSIX_DECL(umask)(mode_t mask) {
519
516
char * * args = assemble_args_list (1 , itoa (mask ));
520
517
RECORDER_INTERCEPTOR (1 , args );
521
518
}
519
+
522
520
FILE * RECORDER_POSIX_DECL (fdopen )(int fd , const char * mode ) {
523
521
RECORDER_INTERCEPTOR_NOIO (FILE * , fdopen , (fd , mode ));
524
522
record -> res = stream2fd (res );
0 commit comments