summaryrefslogtreecommitdiff
path: root/lib/rtapelib.c
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2021-02-28 13:23:14 -0800
committerPaul Eggert <eggert@cs.ucla.edu>2021-02-28 13:25:37 -0800
commitc30dcfedd3c616f706b4f5db166793de4ac1f64d (patch)
tree760715adbb65d90a59b1764fe9cc03d6c406d480 /lib/rtapelib.c
parent7c7dc5ea3a8f7fca0c2696e434938c1048f9e66d (diff)
downloadpaxutils-c30dcfedd3c616f706b4f5db166793de4ac1f64d.tar.gz
Use unsigned long int for ioctl ops
* lib/rtapelib.c (rmt_ioctl__): * paxlib/rtape.c (rmt_ioctl): Arg is now of type unsigned long int, not int. This works better on GNU/Linux, where some ioctl values used by this code do not fit in int. FreeBSD ioctl also has unsigned long int here, and old hosts where it’s int should still work when this is unsigned long int. Problem reported by clang.
Diffstat (limited to 'lib/rtapelib.c')
-rw-r--r--lib/rtapelib.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/lib/rtapelib.c b/lib/rtapelib.c
index 0c516e5..5190cd4 100644
--- a/lib/rtapelib.c
+++ b/lib/rtapelib.c
@@ -656,7 +656,7 @@ rmt_lseek__ (int handle, off_t offset, int whence)
/* Perform a raw tape operation on remote tape connection HANDLE.
Return the results of the ioctl, or -1 on error. */
int
-rmt_ioctl__ (int handle, int operation, void *argument)
+rmt_ioctl__ (int handle, unsigned long int operation, void *argument)
{
switch (operation)
{
@@ -674,7 +674,6 @@ rmt_ioctl__ (int handle, int operation, void *argument)
/* MTIOCTOP is the easy one. Nothing is transferred in binary. */
- verify (EXPR_SIGNED (mtop->mt_count));
intmax_t count = mtop->mt_count;
sprintf (command_buffer, "I%d\n%jd\n", mtop->mt_op, count);
if (do_command (handle, command_buffer) == -1)