[segyio] 264/376: Make segy_mmap exception safe

Jørgen Kvalsvik jokva-guest at moszumanska.debian.org
Wed Sep 20 08:04:42 UTC 2017


This is an automated email from the git hooks/post-receive script.

jokva-guest pushed a commit to branch debian
in repository segyio.

commit bdcb25068e69e09fb95e6479ff3981c9d9f9055d
Author: Jørgen Kvalsvik <jokva at statoil.com>
Date:   Wed Mar 29 13:43:37 2017 +0200

    Make segy_mmap exception safe
    
    Don't modify the segy_file handle until we know the mmap was successful,
    i.e. if the operation change the segy_file remains unchanged.
---
 lib/src/segy.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/src/segy.c b/lib/src/segy.c
index 07d693f..d26026d 100644
--- a/lib/src/segy.c
+++ b/lib/src/segy.c
@@ -360,18 +360,18 @@ int segy_mmap( segy_file* fp ) {
     int err = file_size( fp->fp, &fsize );
 
     if( err != 0 ) return SEGY_FSEEK_ERROR;
-    fp->fsize = fsize;
 
     bool rw = strstr( fp->mode, "+" ) || strstr( fp->mode, "w" );
     const int prot =  rw ? PROT_READ | PROT_WRITE : PROT_READ;
 
     int fd = fileno( fp->fp );
-    void* addr = mmap( NULL, fp->fsize, prot, MAP_SHARED, fd, 0 );
+    void* addr = mmap( NULL, fsize, prot, MAP_SHARED, fd, 0 );
 
     if( addr == MAP_FAILED )
         return SEGY_MMAP_ERROR;
 
     fp->addr = fp->cur = addr;
+    fp->fsize = fsize;
     return SEGY_OK;
 #endif //HAVE_MMAP
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/segyio.git



More information about the debian-science-commits mailing list