[openssh-commits] [openssh] 01/03: Improve handling of _getshort and _getlong.

git+noreply at mindrot.org git+noreply at mindrot.org
Sat Feb 26 14:13:32 AEDT 2022


This is an automated email from the git hooks/post-receive script.

dtucker pushed a commit to branch master
in repository openssh.

commit 0132056efabc5edb85c3c7105d2fb6dee41843c6
Author: Darren Tucker <dtucker at dtucker.net>
Date:   Fri Feb 25 19:47:48 2022 +1100

    Improve handling of _getshort and _getlong.
    
    If the system native ones are exactly as required then use them,
    otherwise use the local versions mapped to another name to prevent
    name collisions.
---
 openbsd-compat/getrrsetbyname.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/openbsd-compat/getrrsetbyname.c b/openbsd-compat/getrrsetbyname.c
index caadceb6..cc1f8ae5 100644
--- a/openbsd-compat/getrrsetbyname.c
+++ b/openbsd-compat/getrrsetbyname.c
@@ -109,11 +109,18 @@ struct __res_state _res;
 }
 #endif
 
+/*
+ * If the system doesn't have _getshort/_getlong or that are not exactly what
+ * we need then use local replacements, avoiding name collisions.
+ */
+#if !defined(HAVE__GETSHORT) || !defined(HAVE__GETLONG) || \
+    !defined(HAVE_DECL__GETSHORT) || HAVE_DECL__GETSHORT == 0 || \
+    !defined(HAVE_DECL__GETLONG) || HAVE_DECL__GETLONG == 0
+#define _getshort(x) (_ssh_compat_getshort(x))
+#define _getlong(x) (_ssh_compat_getlong(x))
 /*
  * Routines to insert/extract short/long's.
  */
-
-#ifndef HAVE__GETSHORT
 static u_int16_t
 _getshort(const u_char *msgp)
 {
@@ -122,11 +129,7 @@ _getshort(const u_char *msgp)
 	GETSHORT(u, msgp);
 	return (u);
 }
-#elif defined(HAVE_DECL__GETSHORT) && (HAVE_DECL__GETSHORT == 0)
-u_int16_t _getshort(const u_char *);
-#endif
 
-#ifndef HAVE__GETLONG
 static u_int32_t
 _getlong(const u_char *msgp)
 {
@@ -135,8 +138,6 @@ _getlong(const u_char *msgp)
 	GETLONG(u, msgp);
 	return (u);
 }
-#elif defined(HAVE_DECL__GETLONG) && (HAVE_DECL__GETLONG == 0)
-u_int32_t _getlong(const u_char *);
 #endif
 
 /* ************** */

-- 
To stop receiving notification emails like this one, please contact
djm at mindrot.org.


More information about the openssh-commits mailing list