add munmap call
authorKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Fri, 15 May 1992 06:41:27 +0000 (22:41 -0800)
committerKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Fri, 15 May 1992 06:41:27 +0000 (22:41 -0800)
SCCS-vsn: usr.bin/tail/forward.c 5.6

usr/src/usr.bin/tail/forward.c

index 2c38703..8370ecd 100644 (file)
@@ -169,18 +169,19 @@ rlines(fp, off, sbp)
 {
        register off_t size;
        register char *p;
 {
        register off_t size;
        register char *p;
+       char *start;
 
        if (!(size = sbp->st_size))
                return;
 
 
        if (!(size = sbp->st_size))
                return;
 
-       if ((p = mmap(NULL,
+       if ((start = mmap(NULL,
            size, PROT_READ, MAP_FILE, fileno(fp), (off_t)0)) == (caddr_t)-1) {
                err(0, "%s", strerror(errno));
                return;
        }
 
        /* Last char is special, ignore whether newline or not. */
            size, PROT_READ, MAP_FILE, fileno(fp), (off_t)0)) == (caddr_t)-1) {
                err(0, "%s", strerror(errno));
                return;
        }
 
        /* Last char is special, ignore whether newline or not. */
-       for (p += size - 1; --size;)
+       for (p = start + size - 1; --size;)
                if (*--p == '\n' && !--off) {
                        ++p;
                        break;
                if (*--p == '\n' && !--off) {
                        ++p;
                        break;
@@ -193,4 +194,8 @@ rlines(fp, off, sbp)
                ierr();
                return;
        }
                ierr();
                return;
        }
+       if (munmap(start, size)) {
+               err(0, "%s", strerror(errno));
+               return;
+       }
 }
 }