aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2021-07-23 11:37:25 -0700
committerSean Whitton <spwhitton@spwhitton.name>2021-07-24 12:39:35 -0700
commit885b9f3f762cdf18ff358509fd8838f8222b43ba (patch)
treea264d0d7406e5767cb22736e681dd8abbfe683d6 /src
parentae2f8d30cbcd82126de7daeb4b94dd05d5b46f01 (diff)
downloadconsfigurator-885b9f3f762cdf18ff358509fd8838f8222b43ba.tar.gz
return type in FOREIGN-FUNCALL of geteuid(2) is unsigned
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Diffstat (limited to 'src')
-rw-r--r--src/connection/as.lisp2
-rw-r--r--src/connection/chroot.lisp5
-rw-r--r--src/connection/setuid.lisp3
-rw-r--r--src/util.lisp2
4 files changed, 7 insertions, 5 deletions
diff --git a/src/connection/as.lisp b/src/connection/as.lisp
index a31a338..229d238 100644
--- a/src/connection/as.lisp
+++ b/src/connection/as.lisp
@@ -21,7 +21,7 @@
;; currently we only check whether we're root, but, for example, on Linux, we
;; might have a CAP_* which lets us setuid as non-root
(defun can-setuid ()
- (zerop (foreign-funcall "geteuid" :int)))
+ (zerop (foreign-funcall "geteuid" :unsigned-int)))
(defmethod establish-connection ((type (eql :as)) remaining &key to)
"Establish a :SETUID or :SU connection to another user account, depending on
diff --git a/src/connection/chroot.lisp b/src/connection/chroot.lisp
index b934252..2b2678c 100644
--- a/src/connection/chroot.lisp
+++ b/src/connection/chroot.lisp
@@ -21,7 +21,7 @@
;; currently we only check whether we're root, but, for example, on Linux, we
;; might have a CAP_* which lets us chroot as non-root
(defun can-chroot ()
- (zerop (foreign-funcall "geteuid" :int)))
+ (zerop (foreign-funcall "geteuid" :unsigned-int)))
(defmethod establish-connection ((type (eql :chroot)) remaining &key into)
(establish-connection (if (and (lisp-connection-p) (can-chroot))
@@ -106,7 +106,8 @@ should be the mount point, without the chroot's root prefixed.")
(rehome-connection chroot-connection fork-connection) ())
(defmethod establish-connection ((type (eql :chroot.fork)) remaining &key into)
- (unless (and (lisp-connection-p) (zerop (foreign-funcall "geteuid" :int)))
+ (unless (and (lisp-connection-p)
+ (zerop (foreign-funcall "geteuid" :unsigned-int)))
(error "~&Forking into a chroot requires a Lisp image running as root"))
(informat 1 "~&Forking into chroot at ~A" into)
(let* ((into* (ensure-directory-pathname into))
diff --git a/src/connection/setuid.lisp b/src/connection/setuid.lisp
index 8b3353f..e61222b 100644
--- a/src/connection/setuid.lisp
+++ b/src/connection/setuid.lisp
@@ -32,7 +32,8 @@
(defclass setuid-connection (rehome-connection fork-connection) ())
(defmethod establish-connection ((type (eql :setuid)) remaining &key to)
- (unless (and (lisp-connection-p) (zerop (foreign-funcall "geteuid" :int)))
+ (unless (and (lisp-connection-p)
+ (zerop (foreign-funcall "geteuid" :unsigned-int)))
(error "~&SETUIDing requires a Lisp image running as root"))
(informat 1 "~&SETUIDing to ~A" to)
(multiple-value-bind (match groups)
diff --git a/src/util.lisp b/src/util.lisp
index a6f713a..bedcb52 100644
--- a/src/util.lisp
+++ b/src/util.lisp
@@ -600,7 +600,7 @@ interactive debugger."))
(defun posix-login-environment (logname home)
"Reset the environment after switching UID, or similar, in a :LISP connection.
Does not currently establish a PAM session."
- (let ((euid (foreign-funcall "geteuid" :int))
+ (let ((euid (foreign-funcall "geteuid" :unsigned-int))
(maybe-preserve '("TERM")))
(when (zerop euid)
(push "SSH_AUTH_SOCK" maybe-preserve))