diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2021-02-28 13:23:14 -0800 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2021-02-28 13:25:37 -0800 |
commit | c30dcfedd3c616f706b4f5db166793de4ac1f64d (patch) | |
tree | 760715adbb65d90a59b1764fe9cc03d6c406d480 /lib | |
parent | 7c7dc5ea3a8f7fca0c2696e434938c1048f9e66d (diff) | |
download | paxutils-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')
-rw-r--r-- | lib/rmt.h | 2 | ||||
-rw-r--r-- | lib/rtapelib.c | 3 |
2 files changed, 2 insertions, 3 deletions
@@ -25,7 +25,7 @@ int rmt_close__ (int); size_t rmt_read__ (int, char *, size_t); size_t rmt_write__ (int, char *, size_t); off_t rmt_lseek__ (int, off_t, int); -int rmt_ioctl__ (int, int, void *); +int rmt_ioctl__ (int, unsigned long int, void *); extern bool force_local_option; 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) |