readd php auth module

This commit is contained in:
Mario Fetka
2026-04-20 00:08:32 +02:00
parent 10da2ef731
commit 2a897cbab7
6 changed files with 1442 additions and 7 deletions

View File

@@ -13,10 +13,14 @@ AUX ncpfs-2.2.6-missing-includes.patch 758 BLAKE2B dd250f53198444500f15faad84b2a
AUX ncpfs-2.2.6-multiple-vulns.patch 14138 BLAKE2B 6f612b14d194b595a8c5baa5cd1e5a6af9e43873a3b437d004c212934ac2f0bbc638abe8bf0d7aef91c8d5084e2514f03bb9c0999e57dcc6bf210b7bf1cc3a8e SHA512 a58a3d5f4ff7540a880e064bfe7602d38671ddd737bc8e4a9e48ef52f0864de8e0ae51f0fea2ae0be82cc6910d4a47ff8562f9a730dd1930a37fd870bc2823c9
AUX ncpfs-2.2.6-no-suid-root.patch 544 BLAKE2B 7e5b15d524cba691cd5266d2eaaf579c2180d870235254c8a77caa07e9c72dee36b6215a5681eef16e1a30274862d6bab01b2ca824571de3ac39ecd863c84364 SHA512 697d577aab12c94cbdb36c2f9f2cd51b82e3ab5efb4a9e8246a7c93b7004d004e7d4fdb1ec003585daf1a11f9f559fd65ea86fe8933f2a7d89b0ce810f21c975
AUX ncpfs-2.2.6-pam_ncp_auth-fix.patch 556 BLAKE2B 66289abdd6b8adc0a53538365c03f30eda980c3eaeaf2c6d7105757b3bdb69c3a53d7b12bc7a06dc9d1f91bcdfbcdd81b4e027fdd5054979aaf872851ac8b148 SHA512 3c20c36bb2b8c72440e359bb3f66d5a91bc91132accc518bae8db0fbc77aaf966e676f494c8add959178e315513aaddc9f627a05b9e0c376cf7ece5bba0b0dde
AUX ncpfs-2.2.6-php-install-root.patch 494 BLAKE2B 6010f85cabef7b6f736cc9512147c42fce3be53d66ce2885a8f9cf1450fe5aeaecc1e5528f3028b1052c3b173b9e6275b10643ac6e5ae53d94bd8fc85dce652e SHA512 e867d2782166b49226ab4377d9a8ab251e0b69db832d47d0a634c1c1e0850d3a651d92aece95494552635a22548c515972b03ab6ff52ab821a113257ba128e34
AUX ncpfs-2.2.6-php5x.patch 400 BLAKE2B 14147adf99435c144f3d1ed221e9d6796a2ce493423556ff8abe34e6527e5d3b86f5cfc14de1a97dc26732c88fa3705e4fa50649ad6c885f635617360266df4f SHA512 893d90e60b3ace99080ba0ae343c6dcab2ecaad9e2b6bb1082b63190833e1b3b3aa398efc204d5161517b6737b2b6fe8407e148da01ecb0a5f5c71ce3b83d35e
AUX ncpfs-2.2.6-remove-libncp_atomic-header.patch 572 BLAKE2B 17d8bf08a9cfa63a0ace4f9f3a7983ec70a7c5ed3ad5d83a61383408c8b350a0f25368bb271658a4ac7e26ed0f2ea62d82322a55d4e02f6f0d8d3b6e995367cf SHA512 07689c979e8e6a40aca410ac8211c6af9fa640679c34ab3431e70c849e9f3c42d26b204310a697ef1494f33b5296e642b977dfc56453f680527ee54d697abe1c
AUX ncpfs-2.2.6-remove-packed-attrib.patch 10312 BLAKE2B 9fe98d402ec9e4435128ff903c6cf6eec7144cfa5ba75b1732707e5f50bcdd12ce693cb156d6a1d7c90b947ab52380bd1ff6d1ba44b282cb0f68319838030aa7 SHA512 efd11c2cf08f3b7b1458b836ee863f31e3ae470986a02a3d2db0ec6fbb7a984e2d33643765d7223b797732d80187412a907a9ca971233eb0f95ed4744ef6f44a
AUX ncpfs-2.2.6-servername-array-fix.patch 523 BLAKE2B 6cf9c27ae7bda17722a74f550beb8a2f027517db264a4f895977c05b78609cf818d88fa79e2264a99e99ea09e6de626eb209c394d286b9cae84fd4636db3de47 SHA512 10c8a0b7c6d715018acf77ea3bcca2e50add48d479cc0ee07035f3f8fb910069c2c508a25ab3de945ef19c78add6d8192f0cb484e756d9a15ceb3afcd8195a69
AUX ncpfs-2.2.6-usr-merge.patch 514 BLAKE2B 44873b8731d062b2fe802f9ecc145509d12625be4e62b1025738a6076cb003d5577c2d5c21e338ff5fade6e0bea844a254509287a82aabc0bb92db20b0c7ec5d SHA512 cf05a0b2e41c45a8215bf1b150b79a16cdaa040c4e41ab6f361fffaa2a937fb792b464b1a9b49ecde18ae5df8e58e1887b1e965ff39adf1f05a2418f89efca11
AUX ncpfs-2.2.6-zend_function_entry.patch 296 BLAKE2B 3bb6db87517e0fb086e95462e9b567628ede7fbeef77b5d6e101dec8a316f2a5185cad8846bbaf37dada789acfedf6f6bbc75dafa92f3eb140cfde4eb038e1eb SHA512 c96723a840cb1b0cdddb91ebe74620b87a32350be084f21b741bda4e399a7648fd00522e9f2ec8404d5a98835d3f5a343dd588f4279848cc031de5bed01680e0
AUX php_auth_nds-php8.patch 9935 BLAKE2B 22e0105a8d09713dd054cebcaa1455d01433aa5176b7a21757aaec3a4902e888a1b9d1e25561530a93cf43e0efe7824c4439a9191011ff037ba5bfd639b1c655 SHA512 5430eb4162bc1c46ed41ec6185c4934ae0fb67387a3c2f4f3080cb8a457903366259180715fe720ec562b792864de6706bf10160e9f5de4a357c6e1c95bad800
AUX php_auth_nds.fixed.c 29651 BLAKE2B 6b0e6b56547d152c6e9cc327374d1b492c912bca85e87fca6b5e244d61cb09f71cb0e8dcaf0f9bb6d7224132842c3a2cfe4170c67d0035c0e0ddd5e80e7ec83f SHA512 78dbe6b636281ac6540cce996b8983fdd9d689781c984555eb09b95f479467326f82d8d164618f5a210a89c817ac8cbd13ca79afa1b11be3ea721703eceba62c
DIST ncpfs-2.2.6.tar.gz 2100545 BLAKE2B b95c8c0b097227c7b9e526e978efdca2234cdd0833468be99abaa68b0feba09794be26ebcb3a1c3371bc99f6c9d007eee164fa5f918aaee3eca44aeb1420211f SHA512 51f85eaae85deb66cea2ff434974699f6aa45ed1ed75217ef6176ac0b7d0f9f1c4fb186afc64c1b495474d5bad9ac7614033128c0bec39c05de723a9b29c8602
EBUILD ncpfs-2.2.6-r5.ebuild 2519 BLAKE2B 769617416f31343574ae17ffd08b8ff3e287a88a223dcaa3438e4e42b918eb86629dc4fd897bb6968a2a4145e80155eff2e9135d6e03a934c79ba9cdab7e4588 SHA512 935c021739ab21e6767c686c4ef550dc5836d7f70e1ec945403b4936ee6ee235d1876c4650cf8bc490e405c057ef7281ecee94856d21d7f9acd725da64b054b5
EBUILD ncpfs-2.2.6-r5.ebuild 2981 BLAKE2B 5f95c7ba00a5deea0db38569ddbdffb56707839495ebcb3d5e3266518fd2453a0569e3a4dd4b6997b436db0d0a69cd24c89278f756316eafbbdecbfe5eb98429 SHA512 e9d9661465509a9864e93581eec8126d1000db94c5661f6337bb5716d154e39ebe9815327dcb9a578ec764c6b81bd526e73332ea1b1a68446d60652618b6b8c8

View File

@@ -0,0 +1,16 @@
--- a/contrib/php/build/rules.mk
+++ b/contrib/php/build/rules.mk
@@ -63,10 +63,10 @@
install-modules:
@test -d modules && \
- $(mkinstalldirs) $(moduledir) && \
- echo "installing shared modules into $(moduledir)" && \
+ $(mkinstalldirs) $(INSTALL_ROOT)$(moduledir) && \
+ echo "installing shared modules into $(INSTALL_ROOT)$(moduledir)" && \
rm -f modules/*.la && \
- cp modules/* $(moduledir) || true
+ cp modules/* $(INSTALL_ROOT)$(moduledir) || true
include $(builddir)/.deps

View File

@@ -0,0 +1,11 @@
--- ncpfs-2.2.6/contrib/php/php_auth_nds.c.orig 2014-07-10 21:08:33.943715018 +0200
+++ ncpfs-2.2.6/contrib/php/php_auth_nds.c 2014-07-10 22:19:01.596870933 +0200
@@ -1100,7 +1100,7 @@
php_info_print_table_end();
}
-function_entry auth_nds_functions[] = {
+static zend_function_entry auth_nds_functions[] = {
PHP_FE(auth_bindery, NULL)
PHP_FE(auth_nds, NULL)
PHP_FE(auth_tree, NULL)

View File

@@ -0,0 +1,332 @@
--- /mnt/data/php_auth_nds.c 2026-04-19 21:36:13.625852545 +0000
+++ ncpfs-2.2.6/contrib/php/php_auth_nds.c 2026-04-19 21:38:56.781480418 +0000
@@ -816,47 +816,34 @@
PHP_FUNCTION (read_nds_string)
{
int res; /* fcn result code */
- const char *treen, *objectn, *attributen;
+ char *treen, *objectn, *attributen;
+ size_t treen_len, objectn_len, attributen_len;
char errstr[512];
char local_buffer [8192];
char * buffer; // returned by NWCXGetMultiStringAttributeValue
- int argc = ZEND_NUM_ARGS();
- zval **tree, **object, **attribute;
-
- if (argc != 3 || zend_get_parameters_ex(argc, &tree, &object, &attribute)) {
- WRONG_PARAM_COUNT;
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "sss", &treen, &treen_len,
+ &objectn, &objectn_len,
+ &attributen, &attributen_len) == FAILURE) {
+ RETURN_THROWS();
}
sprintf(errstr, "Wrong parameters values");
- if (!tree || !object || !attribute) {
- RETURN_STRING(errstr,1);
- }
-
- convert_to_string_ex(tree);
- convert_to_string_ex(object);
- convert_to_string_ex(attribute);
-
- treen = (*tree)->value.str.val;
- objectn = (*object)->value.str.val;
- attributen = (*attribute)->value.str.val;
-
if (!treen || !objectn || !attributen) {
- RETURN_STRING(errstr,1);
+ RETURN_STRING(errstr);
}
sprintf(errstr, "failure");
res=nds_read_string_fn(errstr,treen,objectn,attributen,&buffer);
if (res) {
- RETURN_STRING(errstr,1);
+ RETURN_STRING(errstr);
}
if (strlen(buffer) >=sizeof(local_buffer)) {
buffer[sizeof(local_buffer)-1]=0;
-
}
strcpy(local_buffer,buffer);
free(buffer);
- RETURN_STRING(local_buffer,1);
+ RETURN_STRING(local_buffer);
}
@@ -864,78 +851,53 @@
//use a servername instaed of a tree name
{
int res; /* fcn result code */
- const char *servern, *objectn, *attributen;
+ char *servern, *objectn, *attributen;
+ size_t servern_len, objectn_len, attributen_len;
char errstr[512];
char local_buffer [8192];
char * buffer; // returned by NWCXGetMultiStringAttributeValue
- int argc = ZEND_NUM_ARGS();
- zval **server, **object, **attribute;
-
- if (argc != 3 || zend_get_parameters_ex(argc, &server, &object, &attribute)) {
- WRONG_PARAM_COUNT;
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "sss", &servern, &servern_len,
+ &objectn, &objectn_len,
+ &attributen, &attributen_len) == FAILURE) {
+ RETURN_THROWS();
}
sprintf(errstr, "Wrong parameters values");
- if (!server || !object || !attribute) {
- RETURN_STRING(errstr,1);
- }
-
- convert_to_string_ex(server);
- convert_to_string_ex(object);
- convert_to_string_ex(attribute);
-
- servern = (*server)->value.str.val;
- objectn = (*object)->value.str.val;
- attributen = (*attribute)->value.str.val;
-
if (!servern || !objectn || !attributen) {
- RETURN_STRING(errstr,1);
+ RETURN_STRING(errstr);
}
sprintf(errstr, "failure");
res=nds_read_string_fn2(errstr,servern,objectn,attributen,&buffer);
if (res) {
- RETURN_STRING(errstr,1);
+ RETURN_STRING(errstr);
}
if (strlen(buffer) >=sizeof(local_buffer)) {
buffer[sizeof(local_buffer)-1]=0;
-
}
strcpy(local_buffer,buffer);
free(buffer);
- RETURN_STRING(local_buffer,1);
+ RETURN_STRING(local_buffer);
}
PHP_FUNCTION (read_nds_int)
{
int res; /* fcn result code */
- const char *treen, *objectn, *attributen;
+ char *treen, *objectn, *attributen;
+ size_t treen_len, objectn_len, attributen_len;
char errstr[512];
- int argc = ZEND_NUM_ARGS();
- zval **tree, **object, **attribute;
-
- if (argc != 3 || zend_get_parameters_ex(argc, &tree, &object, &attribute)) {
- WRONG_PARAM_COUNT;
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "sss", &treen, &treen_len,
+ &objectn, &objectn_len,
+ &attributen, &attributen_len) == FAILURE) {
+ RETURN_THROWS();
}
sprintf(errstr, "Wrong parameters values");
- if (!tree || !object || !attribute) {
- RETURN_STRING(errstr,1);
- }
-
- convert_to_string_ex(tree);
- convert_to_string_ex(object);
- convert_to_string_ex(attribute);
-
- treen = (*tree)->value.str.val;
- objectn = (*object)->value.str.val;
- attributen = (*attribute)->value.str.val;
-
if (!treen || !objectn || !attributen) {
- RETURN_STRING(errstr,1);
+ RETURN_STRING(errstr);
}
sprintf(errstr, "failure");
{
@@ -945,7 +907,7 @@
sprintf(errstr, "%d", result);
}
}
- RETURN_STRING(errstr, 1);
+ RETURN_STRING(errstr);
}
@@ -953,31 +915,19 @@
// use a servername instead of a tree name as first argument
{
int res; /* fcn result code */
- const char *servern, *objectn, *attributen;
+ char *servern, *objectn, *attributen;
+ size_t servern_len, objectn_len, attributen_len;
char errstr[512];
- int argc = ZEND_NUM_ARGS();
- zval **server, **object, **attribute;
-
- if (argc != 3 || zend_get_parameters_ex(argc, &server, &object, &attribute)) {
- WRONG_PARAM_COUNT;
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "sss", &servern, &servern_len,
+ &objectn, &objectn_len,
+ &attributen, &attributen_len) == FAILURE) {
+ RETURN_THROWS();
}
sprintf(errstr, "Wrong parameters values");
- if (!server || !object || !attribute) {
- RETURN_STRING(errstr,1);
- }
-
- convert_to_string_ex(server);
- convert_to_string_ex(object);
- convert_to_string_ex(attribute);
-
- servern = (*server)->value.str.val;
- objectn = (*object)->value.str.val;
- attributen = (*attribute)->value.str.val;
-
if (!servern || !objectn || !attributen) {
- RETURN_STRING(errstr,1);
+ RETURN_STRING(errstr);
}
sprintf(errstr, "failure");
{
@@ -988,37 +938,28 @@
sprintf(errstr, "%d", result);
}
}
- RETURN_STRING(errstr, 1);
+ RETURN_STRING(errstr);
}
PHP_FUNCTION(auth_bindery)
{
int res; /* fcn result code */
- const char *servern, *usern, *sent_pw, *groupn;
+ char *servern, *usern, *sent_pw, *groupn;
+ size_t servern_len, usern_len, sent_pw_len, groupn_len;
char errstr[512];
- int argc = ZEND_NUM_ARGS();
- zval **server, **user, **password, ** group;
-
- if (argc != 4 || zend_get_parameters_ex(argc, &server, &user, &password, &group)) {
- WRONG_PARAM_COUNT;
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "ssss", &servern, &servern_len,
+ &usern, &usern_len,
+ &sent_pw, &sent_pw_len,
+ &groupn, &groupn_len) == FAILURE) {
+ RETURN_THROWS();
}
- convert_to_string_ex(server);
- convert_to_string_ex(user);
- convert_to_string_ex(password);
- convert_to_string_ex(group);
-
- servern = (*server)->value.str.val;
- usern = (*user)->value.str.val;
- sent_pw = (*password)->value.str.val;
- groupn = (*group)->value.str.val;
-
/* do they know the magic word? */
sprintf(errstr, "failure");
res = bindery_auth(errstr, servern, usern, sent_pw, groupn );
if (res) {
- RETURN_STRING(errstr,1);
+ RETURN_STRING(errstr);
}
RETURN_FALSE;
}
@@ -1026,64 +967,46 @@
PHP_FUNCTION(auth_tree)
{
int res; /* fcn result code */
- const char *servern, *ctxs,*usern, *sent_pw, *groupn;
+ char *servern, *ctxs,*usern, *sent_pw, *groupn;
+ size_t servern_len, ctxs_len, usern_len, sent_pw_len, groupn_len;
char errstr[512];
char fqdn[MAX_DN_CHARS+5]; // to get 'DN=' plus the FQDN used
- int argc = ZEND_NUM_ARGS();
- zval **server, **user, **contexts, **password, **group;
- if (argc != 5 || zend_get_parameters_ex(argc, &server, &user, &contexts,&password, &group)) {
- WRONG_PARAM_COUNT;
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "sssss", &servern, &servern_len,
+ &usern, &usern_len,
+ &ctxs, &ctxs_len,
+ &sent_pw, &sent_pw_len,
+ &groupn, &groupn_len) == FAILURE) {
+ RETURN_THROWS();
}
- convert_to_string_ex(server);
- convert_to_string_ex(user);
- convert_to_string_ex(contexts);
- convert_to_string_ex(password);
- convert_to_string_ex(group);
-
- servern = (*server)->value.str.val;
- usern = (*user)->value.str.val;
- ctxs = (*contexts)->value.str.val ;
- sent_pw = (*password)->value.str.val;
- groupn = (*group)->value.str.val;
-
/* do they know the magic word? */
sprintf(errstr, "failure");
strcpy(fqdn, "DN=");
res = tree_auth_fn(errstr, servern, usern, ctxs,sent_pw, groupn, fqdn + 3);
if (res) {
- RETURN_STRING(errstr, 1);
+ RETURN_STRING(errstr);
}
- RETURN_STRING(fqdn, 1);
+ RETURN_STRING(fqdn);
}
PHP_FUNCTION(auth_nds)
{
int res; /* fcn result code */
- const char *servern, *usern, *sent_pw, *groupn;
+ char *servern, *usern, *sent_pw, *groupn;
+ size_t servern_len, usern_len, sent_pw_len, groupn_len;
char errstr[512];
- int argc = ZEND_NUM_ARGS();
- zval **server, **user, **password, **group;
-
- if (argc != 4 || zend_get_parameters_ex(argc, &server, &user, &password, &group)) {
- WRONG_PARAM_COUNT;
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "ssss", &servern, &servern_len,
+ &usern, &usern_len,
+ &sent_pw, &sent_pw_len,
+ &groupn, &groupn_len) == FAILURE) {
+ RETURN_THROWS();
}
- convert_to_string_ex(server);
- convert_to_string_ex(user);
- convert_to_string_ex(password);
- convert_to_string_ex(group);
-
- servern = (*server)->value.str.val;
- usern = (*user)->value.str.val;
- sent_pw = (*password)->value.str.val;
- groupn = (*group)->value.str.val;
-
/* do they know the magic word? */
sprintf(errstr, "failure");
res = nds_auth_fn(errstr, servern, usern, sent_pw, groupn);
if (res) {
- RETURN_STRING(errstr,1);
+ RETURN_STRING(errstr);
}
RETURN_FALSE;
}

File diff suppressed because it is too large Load Diff

View File

@@ -13,11 +13,12 @@ SRC_URI="ftp://platan.vc.cvut.cz/pub/linux/${PN}/${P}.tar.gz
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~mips ~ppc ~ppc64 ~x86"
IUSE="nls pam"
IUSE="nls pam php"
DEPEND="
nls? ( sys-devel/gettext )
pam? ( sys-libs/pam )"
pam? ( sys-libs/pam )
php? ( dev-lang/php:* )"
RDEPEND="${DEPEND}
net-fs/ncpfs-modules
@@ -64,6 +65,11 @@ PATCHES=(
"${FILESDIR}"/${P}-usr-merge.patch
"${FILESDIR}"/${P}-fix-build-with-gcc14.patch
"${FILESDIR}"/${P}-php5x.patch
"${FILESDIR}"/php_auth_nds-php8.patch
"${FILESDIR}"/${P}-php-install-root.patch
)
DOCS=( FAQ README )
@@ -82,16 +88,25 @@ src_configure() {
--prefix="${EPREFIX}/usr" \
$(use_enable nls) \
$(use_enable pam pam "$(getpam_mod_dir)") \
--disable-php \
--disable-ipx-tools
$(use_enable php) \
--disable-ipx-tools \
--enable-ipx
}
src_install() {
dodir $(getpam_mod_dir) /usr/sbin
# Install main software and headers.
emake DESTDIR="${D}" install
emake DESTDIR="${D}" install-dev
emake DESTDIR="${D}" INSTALL_ROOT="${D}" install
emake DESTDIR="${D}" INSTALL_ROOT="${D}" install-dev
einstalldocs
}
pkg_postinst() {
if use php; then
elog "The bundled PHP extension php_auth_nds was built and installed."
elog "Make sure the matching PHP slot is installed and selected so that"
elog "the built module path matches your active php-config."
fi
}