]> Dogcows Code - chaz/tar/commitdiff
(main): Convert lseek whence values to portable integers on the wire.
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 2 Jul 1999 21:25:09 +0000 (21:25 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 2 Jul 1999 21:25:09 +0000 (21:25 +0000)
Check for whence values out of range.

src/rmt.c

index bf2e0a128640a6fd5850104f331a85ad47c5ff22..b0ec6f98c3f7a5fd2d91b62639d829081b066b3d 100644 (file)
--- a/src/rmt.c
+++ b/src/rmt.c
@@ -254,6 +254,7 @@ top:
        char position_string[STRING_SIZE];
        off_t count = 0;
        int negative;
+       int whence;
        char *p;
 
        get_string (count_string);
@@ -288,7 +289,16 @@ top:
              }
          }
 
-       count = lseek (tape, count, atoi (position_string));
+       switch (atoi (position_string))
+         {
+         case 0: whence = SEEK_SET; break;
+         case 1: whence = SEEK_CUR; break;
+         case 2: whence = SEEK_END; break;
+         default:
+           report_error_message (N_("Seek direction out of range"));
+           exit (EXIT_FAILURE);
+         }
+       count = lseek (tape, count, whence);
        if (count < 0)
          goto ioerror;
 
This page took 0.026485 seconds and 4 git commands to generate.