quota upgrade to 4.05
This commit is contained in:
parent
34566f3278
commit
f324ba5ef7
25
0000-Limit-number-of-comparison-characters-to-4.patch
Normal file
25
0000-Limit-number-of-comparison-characters-to-4.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From 5df2b9bd2b4b88881d03930183c07cc0027362df Mon Sep 17 00:00:00 2001
|
||||
From: renxudong <renxudong1@huawei.com>
|
||||
Date: Sat, 11 Jan 2020 12:05:57 +0800
|
||||
Subject: Limit number of comparison characters to 4
|
||||
|
||||
Replace the function strcasecmp with strncasecmp
|
||||
---
|
||||
warnquota.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/warnquota.c b/warnquota.c
|
||||
index 5158094..daa29d9 100644
|
||||
--- a/warnquota.c
|
||||
+++ b/warnquota.c
|
||||
@@ -843,7 +843,7 @@ cc_parse_err:
|
||||
}
|
||||
#ifdef USE_LDAP_MAIL_LOOKUP
|
||||
else if (!strcmp(var, "LDAP_MAIL")) {
|
||||
- if(strcasecmp(value, "true") == 0)
|
||||
+ if(strncasecmp(value, "true", 4) == 0)
|
||||
config->use_ldap_mail = 1;
|
||||
else
|
||||
config->use_ldap_mail = 0;
|
||||
--
|
||||
1.8.3.1
|
||||
@ -1,76 +0,0 @@
|
||||
From 67a0dbf6434552e720b0d311597553b3a76f779e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Tue, 23 Aug 2011 13:45:15 +0200
|
||||
Subject: [PATCH] warnquota configuration tunes
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Rest of changes (378a64006bb1e818e84a1c77808563b802b028fa) not
|
||||
accepted by upstream (we had root@... addresses and more enterprise
|
||||
wordings usually there).
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
warnquota.c | 2 +-
|
||||
warnquota.conf | 17 ++++++++---------
|
||||
2 files changed, 9 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/warnquota.c b/warnquota.c
|
||||
index 0d911e4..2c8e084 100644
|
||||
--- a/warnquota.c
|
||||
+++ b/warnquota.c
|
||||
@@ -837,7 +837,7 @@ cc_parse_err:
|
||||
}
|
||||
#ifdef USE_LDAP_MAIL_LOOKUP
|
||||
else if (!strcmp(var, "LDAP_MAIL")) {
|
||||
- if(strcasecmp(value, "true") == 0)
|
||||
+ if(strncasecmp(value, "true", 4) == 0)
|
||||
config->use_ldap_mail = 1;
|
||||
else
|
||||
config->use_ldap_mail = 0;
|
||||
diff --git a/warnquota.conf b/warnquota.conf
|
||||
index b06f81f..7e00947 100644
|
||||
--- a/warnquota.conf
|
||||
+++ b/warnquota.conf
|
||||
@@ -4,17 +4,16 @@
|
||||
# and even blank lines
|
||||
|
||||
# values can be quoted:
|
||||
-#MAIL_CMD = "/usr/my/sendmail/instead/sendmail -t"
|
||||
-MAIL_CMD = "/bin/echo"
|
||||
-FROM = "bas@example.com"
|
||||
+MAIL_CMD = "/usr/sbin/sendmail -t"
|
||||
+FROM = "root@example.com"
|
||||
# but they don't have to be:
|
||||
-SUBJECT = Hey, user, clean up your account!
|
||||
-CC_TO = "sysadm@example.com"
|
||||
+SUBJECT = NOTE: You are exceeding your allocated disk space limits
|
||||
+CC_TO = "root@example.com"
|
||||
# If you set this variable CC will be used only when user has less than
|
||||
# specified grace time left (examples of possible times: 5 seconds, 1 minute,
|
||||
# 12 hours, 5 days)
|
||||
# CC_BEFORE = 2 days
|
||||
-SUPPORT = "support@example.com"
|
||||
+SUPPORT = "root@example.com"
|
||||
PHONE = "(123) 456-1111 or (222) 333-4444"
|
||||
# Text in the beginning of the mail (if not specified, default text is used)
|
||||
# This way text can be split to more lines
|
||||
@@ -22,11 +21,11 @@ PHONE = "(123) 456-1111 or (222) 333-4444"
|
||||
# The expressions %i, %h, %d, and %% are substituted for user/group name,
|
||||
# host name, domain name, and '%' respectively. For backward compatibility
|
||||
# %s behaves as %i but is deprecated.
|
||||
-MESSAGE = Hello user %i, I've noticed you use too much space\
|
||||
- on my disk in %h.%d.|Delete your files on the following filesystems:|
|
||||
+MESSAGE = Your disk usage has exceeded the agreed limits\
|
||||
+ on this server|Please delete any unnecessary files on following filesystems:|
|
||||
# Text in the end of the mail (if not specified, default text using SUPPORT and PHONE
|
||||
# is created)
|
||||
-SIGNATURE = See you!| Your admin of %h|
|
||||
+SIGNATURE = root@example.com
|
||||
# Following text is used for mails about group exceeding quotas
|
||||
GROUP_MESSAGE = Hello,|\
|
||||
your group %i is using too much disk space at %h.|\
|
||||
--
|
||||
2.13.5
|
||||
|
||||
37
0001-Limit-maximum-of-RPC-port.patch
Normal file
37
0001-Limit-maximum-of-RPC-port.patch
Normal file
@ -0,0 +1,37 @@
|
||||
From 7f45919a7b70824e49687f11a43ebc09b4bca2c2 Mon Sep 17 00:00:00 2001
|
||||
From: renxudong <renxudong1@huawei.com>
|
||||
Date: Sat, 11 Jan 2020 12:13:45 +0800
|
||||
Subject: Limit maximum of RPC port
|
||||
|
||||
---
|
||||
rquota_svc.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/rquota_svc.c b/rquota_svc.c
|
||||
index 6e856bb..d0be63f 100644
|
||||
--- a/rquota_svc.c
|
||||
+++ b/rquota_svc.c
|
||||
@@ -53,6 +53,12 @@ int deny_severity, allow_severity; /* Needed by some versions of libwrap */
|
||||
char *progname;
|
||||
|
||||
/*
|
||||
+ * Port upper and lower limits
|
||||
+ */
|
||||
+#define PORT_UPPER 0xFFFF
|
||||
+#define PORT_LOWER 0
|
||||
+
|
||||
+/*
|
||||
* Global authentication credentials.
|
||||
*/
|
||||
struct authunix_parms *unix_cred;
|
||||
@@ -140,7 +146,7 @@ static void parse_options(int argc, char **argv)
|
||||
break;
|
||||
case 'p':
|
||||
port = strtol(optarg, &endptr, 0);
|
||||
- if (*endptr || port <= 0) {
|
||||
+ if (*endptr || port <= PORT_LOWER || port > PORT_UPPER) {
|
||||
errstr(_("Illegal port number: %s\n"), optarg);
|
||||
show_help();
|
||||
exit(1);
|
||||
--
|
||||
1.8.3.1
|
||||
@ -1,29 +0,0 @@
|
||||
From c9a2a6fea0668579f5fb8d77cb219f51d104581f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Wed, 6 Jan 2016 17:58:22 +0100
|
||||
Subject: [PATCH] Validate upper bound of RPC port
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
rquota_svc.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/rquota_svc.c b/rquota_svc.c
|
||||
index 338b70f..93472e0 100644
|
||||
--- a/rquota_svc.c
|
||||
+++ b/rquota_svc.c
|
||||
@@ -142,7 +142,7 @@ static void parse_options(int argc, char **argv)
|
||||
break;
|
||||
case 'p':
|
||||
port = strtol(optarg, &endptr, 0);
|
||||
- if (*endptr || port <= 0) {
|
||||
+ if (*endptr || port <= 0 || port > 0xffff) {
|
||||
errstr(_("Illegal port number: %s\n"), optarg);
|
||||
show_help();
|
||||
exit(1);
|
||||
--
|
||||
2.5.0
|
||||
|
||||
@ -1,44 +0,0 @@
|
||||
From b5ed9878d60bf2c6764ce8e1de4f69e64c4bdfaf Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Wed, 6 Sep 2017 16:25:09 +0200
|
||||
Subject: [PATCH] Install rquota(3) only if RPC is enabled
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
rquote(3) documents rpcsvc header files. Thus it should be installed
|
||||
only if the the header files are installed and that is only if RPC
|
||||
configure feature is enabled.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
Makefile.am | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 8d80bee..9b852d2 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -27,7 +27,6 @@ man_MANS = \
|
||||
quota.1 \
|
||||
quot.8 \
|
||||
repquota.8 \
|
||||
- rquota.3 \
|
||||
setquota.8 \
|
||||
warnquota.conf.5 \
|
||||
warnquota.8 \
|
||||
@@ -69,7 +68,10 @@ librpcclient_a_CFLAGS = -Wno-unused
|
||||
RPCLIBS = librpcclient.a
|
||||
BUILT_SOURCES = rquota.h rquota.c rquota_clnt.c
|
||||
CLEANFILES = rquota.c rquota.h rquota_clnt.c
|
||||
-man_MANS += rpc.rquotad.8
|
||||
+man_MANS += \
|
||||
+ rpc.rquotad.8 \
|
||||
+ rquota.3
|
||||
+
|
||||
endif
|
||||
|
||||
libquota_a_SOURCES = \
|
||||
--
|
||||
2.13.5
|
||||
|
||||
@ -1,43 +0,0 @@
|
||||
From bbb8819fc0f6ed379a05d635a61bcf9c8986079f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20K=2E=20H=C3=BCttel?= <dilfridge@gentoo.org>
|
||||
Date: Sat, 16 Sep 2017 13:09:43 +0200
|
||||
Subject: [PATCH] Add $(TIRPC_CFLAGS) globally to CFLAGS for RPC support,
|
||||
needed for libc 2.26
|
||||
|
||||
---
|
||||
Makefile.am | 5 ++---
|
||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 8d80bee..278290a 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -51,6 +51,8 @@ EXTRA_DIST = \
|
||||
noinst_LIBRARIES = libquota.a
|
||||
|
||||
if WITH_RPC
|
||||
+CFLAGS += $(TIRPC_CFLAGS)
|
||||
+
|
||||
rpcsvcdir = $(includedir)/rpcsvc
|
||||
rpcsvc_DATA = \
|
||||
rquota.h \
|
||||
@@ -100,8 +102,6 @@ libquota_a_SOURCES = \
|
||||
mntopt.h \
|
||||
pot.c \
|
||||
pot.h
|
||||
-libquota_a_CFLAGS = \
|
||||
- $(TIRPC_CFLAGS)
|
||||
libquota_a_LIBADD = \
|
||||
$(RPCLIBS)
|
||||
|
||||
@@ -235,7 +235,6 @@ rpc_rquotad_SOURCES = \
|
||||
rquota_server.c \
|
||||
rquota_svc.c \
|
||||
svc_socket.c
|
||||
-rpc_rquotad_CFLAGS = $(TIRPC_CFLAGS)
|
||||
rpc_rquotad_LDADD = \
|
||||
libquota.a \
|
||||
$(WRAP_LIBS) \
|
||||
--
|
||||
2.14.1
|
||||
|
||||
@ -1,59 +0,0 @@
|
||||
From 1806ee01060d363beac01fda28c613ab27dbc4df Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Wed, 10 Jan 2018 10:18:43 +0100
|
||||
Subject: [PATCH] repquota: Fix output when user -2 exists
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Vladimit Meshkov reported that when user -2 exists and user namespaces
|
||||
are enabled in the kernel, repquota(8) fails to output anything. He also
|
||||
analyzed this is because in such case repquota(8) tries to query info
|
||||
for user -1 which is invalid ID, gets error from the kernel, and bails
|
||||
out.
|
||||
|
||||
Fix the problem by stopping iteration over IDs when we reach ID -1.
|
||||
|
||||
Reported-by: Vladimir Meshkov <ubob74@gmail.com>
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
quotaio_generic.c | 5 +++++
|
||||
quotaio_xfs.c | 5 +++++
|
||||
2 files changed, 10 insertions(+)
|
||||
|
||||
diff --git a/quotaio_generic.c b/quotaio_generic.c
|
||||
index 025d712..5b23955 100644
|
||||
--- a/quotaio_generic.c
|
||||
+++ b/quotaio_generic.c
|
||||
@@ -204,6 +204,11 @@ int vfs_scan_dquots(struct quota_handle *h,
|
||||
if (ret < 0)
|
||||
break;
|
||||
id = kdqblk.dqb_id + 1;
|
||||
+ /* id -1 is invalid and the last one... */
|
||||
+ if (id == -1) {
|
||||
+ errno = ENOENT;
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
free(dquot);
|
||||
|
||||
diff --git a/quotaio_xfs.c b/quotaio_xfs.c
|
||||
index 1374cf4..56daf89 100644
|
||||
--- a/quotaio_xfs.c
|
||||
+++ b/quotaio_xfs.c
|
||||
@@ -219,6 +219,11 @@ static int xfs_kernel_scan_dquots(struct quota_handle *h,
|
||||
if (ret < 0)
|
||||
break;
|
||||
id = xdqblk.d_id + 1;
|
||||
+ /* id -1 is invalid and the last one... */
|
||||
+ if (id == -1) {
|
||||
+ errno = ENOENT;
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
free(dquot);
|
||||
|
||||
--
|
||||
2.13.6
|
||||
|
||||
@ -1,76 +0,0 @@
|
||||
From eeef53917864600e0f5ac42ce5c3d884967012a1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Mon, 5 Feb 2018 10:31:47 +0100
|
||||
Subject: [PATCH 1/2] warnquota: Check snprintf() for overflows
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
GCC 8 with GNU libc 2.27 prerelease warns:
|
||||
|
||||
gcc -DHAVE_CONFIG_H -I. -g -O2 -Wall -fPIC -I/usr/include/tirpc -c -o warnquota.o warnquota.c
|
||||
warnquota.c: In function ‘lookup_user’:
|
||||
warnquota.c:415:29: warning: ‘%s’ directive output may be truncated writing up to 2047 bytes into a region of size 255 [-Wformat-truncation=]
|
||||
snprintf(searchbuf, 256, "(%s=%s)", config->ldap_search_attr, user);
|
||||
^~
|
||||
warnquota.c:415:2: note: ‘snprintf’ output 4 or more bytes (assuming 2051) into a destination of size 256
|
||||
snprintf(searchbuf, 256, "(%s=%s)", config->ldap_search_attr, user);
|
||||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
warnquota.c: In function ‘warn_quota’:
|
||||
warnquota.c:896:51: warning: ‘%s’ directive output may be truncated writing up to 2047 bytes into a region of size 2041 [-Wformat-truncation=]
|
||||
snprintf(config->ldap_uri, CNF_BUFFER, "ldap://%s:%d", config->ldap_host, config->ldap_port);
|
||||
^~ ~~~~~~~~~~~~~~~~~
|
||||
warnquota.c:896:4: note: ‘snprintf’ output between 10 and 2067 bytes into a destination of size 2048
|
||||
snprintf(config->ldap_uri, CNF_BUFFER, "ldap://%s:%d", config->ldap_host, config->ldap_port);
|
||||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This is patch fixes it by catching the cases when snprintf() truncates and
|
||||
reporting an error.
|
||||
|
||||
Perfect fix would fall back into dynamically allocated buffers but
|
||||
I think that would make these corner case too complicated provided
|
||||
nobody had yet complained about them.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
warnquota.c | 17 +++++++++++++++--
|
||||
1 file changed, 15 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/warnquota.c b/warnquota.c
|
||||
index 073c45e..bc11055 100644
|
||||
--- a/warnquota.c
|
||||
+++ b/warnquota.c
|
||||
@@ -412,7 +412,13 @@ static char *lookup_user(struct configparams *config, char *user)
|
||||
}
|
||||
|
||||
/* search for the offender_name in ldap */
|
||||
- snprintf(searchbuf, 256, "(%s=%s)", config->ldap_search_attr, user);
|
||||
+ if (256 <= snprintf(searchbuf, 256, "(%s=%s)", config->ldap_search_attr,
|
||||
+ user)) {
|
||||
+ errstr(_("Could not format LDAP search filter for %s user and "
|
||||
+ "%s search attribute due to excessive length.\n"),
|
||||
+ user, config->ldap_search_attr);
|
||||
+ return NULL;
|
||||
+ }
|
||||
ret = ldap_search_ext_s(ldapconn,
|
||||
config->ldap_basedn, LDAP_SCOPE_SUBTREE,
|
||||
searchbuf, NULL, 0, NULL, NULL, NULL,
|
||||
@@ -893,7 +899,14 @@ cc_parse_err:
|
||||
if (config->use_ldap_mail)
|
||||
{
|
||||
if (!config->ldap_uri[0]) {
|
||||
- snprintf(config->ldap_uri, CNF_BUFFER, "ldap://%s:%d", config->ldap_host, config->ldap_port);
|
||||
+ if (CNF_BUFFER <= snprintf(config->ldap_uri, CNF_BUFFER,
|
||||
+ "ldap://%s:%d", config->ldap_host,
|
||||
+ config->ldap_port)) {
|
||||
+ errstr(_("Could not format LDAP URI because "
|
||||
+ "it's longer than %d bytes.\n"),
|
||||
+ CNF_BUFFER);
|
||||
+ return -1;
|
||||
+ }
|
||||
errstr(_("LDAP library version >= 2.3 detected. Please use LDAP_URI instead of hostname and port.\nGenerated URI %s\n"), config->ldap_uri);
|
||||
}
|
||||
}
|
||||
--
|
||||
2.13.6
|
||||
|
||||
@ -1,74 +0,0 @@
|
||||
From 59b280ebe22eceaf4250cb3b776674619a4d4ece Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Mon, 5 Feb 2018 11:07:41 +0100
|
||||
Subject: [PATCH] warnquota: Fix comparing user name to non-null-terminated
|
||||
utmp.ut_user
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
GCC 8 with GNU libc 2.27 warns:
|
||||
|
||||
gcc -DHAVE_CONFIG_H -I. -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/libnl3 -g -O2 -Wall -fPIC -I/usr/include/tirpc -c -o quota_nld-quota_nld.o `test -f 'quota_nld.c' || echo './'`quota_nld.c
|
||||
quota_nld.c: In function ‘write_console_warning’:
|
||||
quota_nld.c:273:7: warning: ‘strcmp’ argument 2 declared attribute ‘nonstring’ [-Wstringop-overflow=]
|
||||
if (strcmp(user, uent->ut_user))
|
||||
^~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
In file included from /usr/include/utmp.h:29,
|
||||
from quota_nld.c:23:
|
||||
/usr/include/bits/utmp.h:65:8: note: argument ‘ut_user’ declared here
|
||||
char ut_user[UT_NAMESIZE]
|
||||
^~~~~~~
|
||||
|
||||
This is because ut_user value misses the terminating null byte if it
|
||||
fits exactly into ut_user array, as document in utmp(5):
|
||||
|
||||
String fields are terminated by a null byte ('\0') if they are
|
||||
shorter than the size of the field.
|
||||
|
||||
Recent GCC and glibc recevied compile-time checks and annotations
|
||||
(__attribute_nonstring_) that catches these mistakes.
|
||||
|
||||
This patch fixes it by using strncmp(3) and by ignoring user names
|
||||
that does not fit into utmp log format. It's better not to warn than
|
||||
spamming unrelated user.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
---
|
||||
quota_nld.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/quota_nld.c b/quota_nld.c
|
||||
index ea541e0..8559f25 100644
|
||||
--- a/quota_nld.c
|
||||
+++ b/quota_nld.c
|
||||
@@ -262,6 +262,8 @@ static void write_console_warning(struct quota_warning *warn)
|
||||
warn->warntype == QUOTA_NL_BSOFTBELOW) && !(flags & FL_PRINTBELOW))
|
||||
return;
|
||||
uid2user(warn->caused_id, user);
|
||||
+ if (strlen(user) > UT_NAMESIZE)
|
||||
+ goto skip_utmp;
|
||||
strcpy(dev, "/dev/");
|
||||
|
||||
setutent();
|
||||
@@ -270,7 +272,7 @@ static void write_console_warning(struct quota_warning *warn)
|
||||
if (uent->ut_type != USER_PROCESS)
|
||||
continue;
|
||||
/* Entry for a different user? */
|
||||
- if (strcmp(user, uent->ut_user))
|
||||
+ if (strncmp(user, uent->ut_user, UT_NAMESIZE))
|
||||
continue;
|
||||
sstrncpy(dev+5, uent->ut_line, PATH_MAX-5);
|
||||
if (stat(dev, &st) < 0)
|
||||
@@ -281,6 +283,7 @@ static void write_console_warning(struct quota_warning *warn)
|
||||
}
|
||||
}
|
||||
if (!max_atime) {
|
||||
+skip_utmp:
|
||||
/*
|
||||
* This can happen quite easily so don't spam syslog with
|
||||
* the error
|
||||
--
|
||||
2.13.6
|
||||
|
||||
@ -1,36 +0,0 @@
|
||||
From 4179911dc38af1b6499704a7f7fb710a40c95bdb Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Mon, 5 Feb 2018 15:39:12 +0100
|
||||
Subject: [PATCH] quotacheck: Avoid question in non-interactive mode
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
A question when quota file version is incorrect is asked even if
|
||||
quotacheck is run in non-interactive mode. Avoid asking the question in
|
||||
that case and fail the check instead.
|
||||
|
||||
Reproted-by: Christoph Biedl <debian.axhn@manchmal.in-ulm.de>
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
quotacheck_v2.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/quotacheck_v2.c b/quotacheck_v2.c
|
||||
index 4cc8558..86fbf42 100644
|
||||
--- a/quotacheck_v2.c
|
||||
+++ b/quotacheck_v2.c
|
||||
@@ -363,7 +363,8 @@ static int check_header(char *filename, int fd, int type, int version)
|
||||
"specified on command line (%d). Quota file header "
|
||||
"may be corrupted.\n"),
|
||||
le32toh(head.dqh_version), version);
|
||||
- if (!ask_yn(_("Continue checking assuming version from command line?"), 1))
|
||||
+ if (!(flags & FL_INTERACTIVE) ||
|
||||
+ !ask_yn(_("Continue checking assuming version from command line?"), 1))
|
||||
return -1;
|
||||
detected_versions[type] = version;
|
||||
} else
|
||||
--
|
||||
2.13.6
|
||||
|
||||
@ -1,88 +0,0 @@
|
||||
From 7b6dfd6390476ec7b811c76e4e2653db2994cad4 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Mon, 5 Feb 2018 15:54:54 +0100
|
||||
Subject: [PATCH] quotacheck: Report error when caching of quota file fails
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Currently quotacheck returns with zero exit code even though caching of
|
||||
quota file fails. Fix it to return with non-zero exit code in that case
|
||||
as expected.
|
||||
|
||||
Reported-by: Christoph Biedl <debian.axhn@manchmal.in-ulm.de
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
quotacheck.c | 29 ++++++++++++++++++++++-------
|
||||
1 file changed, 22 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/quotacheck.c b/quotacheck.c
|
||||
index 9d7940b..b1302b6 100644
|
||||
--- a/quotacheck.c
|
||||
+++ b/quotacheck.c
|
||||
@@ -924,6 +924,7 @@ static int check_dir(struct mount_entry *mnt)
|
||||
struct stat st;
|
||||
int remounted = 0;
|
||||
int failed = 0;
|
||||
+ int ret;
|
||||
|
||||
if (lstat(mnt->me_dir, &st) < 0)
|
||||
die(2, _("Cannot stat mountpoint %s: %s\n"), mnt->me_dir, strerror(errno));
|
||||
@@ -939,14 +940,22 @@ static int check_dir(struct mount_entry *mnt)
|
||||
*/
|
||||
if (cfmt == QF_XFS)
|
||||
goto start_scan;
|
||||
- if (ucheck)
|
||||
- if (process_file(mnt, USRQUOTA) < 0)
|
||||
+ if (ucheck) {
|
||||
+ ret = process_file(mnt, USRQUOTA);
|
||||
+ if (ret < 0) {
|
||||
+ failed |= ret;
|
||||
ucheck = 0;
|
||||
- if (gcheck)
|
||||
- if (process_file(mnt, GRPQUOTA) < 0)
|
||||
+ }
|
||||
+ }
|
||||
+ if (gcheck) {
|
||||
+ ret = process_file(mnt, GRPQUOTA);
|
||||
+ if (ret < 0) {
|
||||
+ failed |= ret;
|
||||
gcheck = 0;
|
||||
+ }
|
||||
+ }
|
||||
if (!ucheck && !gcheck) /* Nothing to check? */
|
||||
- return 0;
|
||||
+ return failed;
|
||||
if (!(flags & FL_NOREMOUNT)) {
|
||||
/* Now we try to remount fs read-only to prevent races when scanning filesystem */
|
||||
if (mount
|
||||
@@ -978,8 +987,11 @@ start_scan:
|
||||
!strcmp(mnt->me_type, MNTTYPE_EXT3) ||
|
||||
!strcmp(mnt->me_type, MNTTYPE_NEXT3) ||
|
||||
!strcmp(mnt->me_type, MNTTYPE_EXT4)) {
|
||||
- if ((failed = ext2_direct_scan(mnt->me_devname)) < 0)
|
||||
+ ret = ext2_direct_scan(mnt->me_devname);
|
||||
+ if (ret < 0) {
|
||||
+ failed |= ret;
|
||||
goto out;
|
||||
+ }
|
||||
}
|
||||
else {
|
||||
#else
|
||||
@@ -987,8 +999,11 @@ start_scan:
|
||||
#endif
|
||||
if (flags & FL_VERYVERBOSE)
|
||||
putchar('\n');
|
||||
- if ((failed = scan_dir(mnt->me_dir)) < 0)
|
||||
+ ret = scan_dir(mnt->me_dir);
|
||||
+ if (ret < 0) {
|
||||
+ failed |= ret;
|
||||
goto out;
|
||||
+ }
|
||||
}
|
||||
dirs_done++;
|
||||
if (flags & FL_VERBOSE || flags & FL_DEBUG)
|
||||
--
|
||||
2.13.6
|
||||
|
||||
@ -1,35 +0,0 @@
|
||||
From b9525abadba082073e20e54ee7ad2423fc1ae6a8 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Mon, 5 Feb 2018 16:27:59 +0100
|
||||
Subject: [PATCH] quotacheck: Fail check if quota file magic is invalid
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Currently quotacheck will just continue if quotafile magic is invalid.
|
||||
Instead ask whether we should continue assuming quota format passed from
|
||||
the command line.
|
||||
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
quotacheck_v2.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/quotacheck_v2.c b/quotacheck_v2.c
|
||||
index 86fbf42..465765b 100644
|
||||
--- a/quotacheck_v2.c
|
||||
+++ b/quotacheck_v2.c
|
||||
@@ -357,6 +357,9 @@ static int check_header(char *filename, int fd, int type, int version)
|
||||
le32toh(head.dqh_version) > known_versions[type]) {
|
||||
errstr(_("WARNING - Quota file %s has corrupted headers\n"),
|
||||
filename);
|
||||
+ if (!(flags & FL_INTERACTIVE) ||
|
||||
+ !ask_yn(_("Continue checking assuming format from command line?"), 0))
|
||||
+ return -1;
|
||||
}
|
||||
if (le32toh(head.dqh_version) != version) {
|
||||
errstr(_("Quota file format version %d does not match the one "
|
||||
--
|
||||
2.13.6
|
||||
|
||||
@ -1,77 +0,0 @@
|
||||
From 31ecd29b3b3f51145fd78f63087c10e9fcadf999 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Dickson <steved@redhat.com>
|
||||
Date: Tue, 22 May 2018 12:41:59 +0200
|
||||
Subject: [PATCH] Listen on a TCP socket
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
rpc.rquotad spins in libtirpc's rendezvous_request() on accepting TCP
|
||||
connections because the polled TCP socket is not listening:
|
||||
|
||||
poll([{fd=4, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=5,
|
||||
events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=6,
|
||||
events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=7,
|
||||
events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 4, -1) = 2 ([{fd=5,
|
||||
revents=POLLHUP}, {fd=7, revents=POLLHUP}])
|
||||
accept(5, 0x7ffe61698700, [128]) = -1 EINVAL (Invalid argument)
|
||||
accept(7, 0x7ffe61698700, [128]) = -1 EINVAL (Invalid argument)
|
||||
|
||||
The polled descriptors are:
|
||||
|
||||
rpc.rquot 21981 root 4u IPv4 80449159 0t0 UDP *:rquotad
|
||||
rpc.rquot 21981 root 5u sock 0,9 0t0 80449162 protocol: TCP
|
||||
rpc.rquot 21981 root 6u IPv6 80449165 0t0 UDP *:rquotad
|
||||
rpc.rquot 21981 root 7u sock 0,9 0t0 80449168 protocol: TCPv6
|
||||
|
||||
That results into a high CPU usage just after staring rpc.rquotad
|
||||
process.
|
||||
|
||||
This patch adds a listen() call to svc_create_sock()
|
||||
routine which is needed with libtirpc version of svc_tli_create()
|
||||
as well as a needed IPv6 setsockopt().
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
svc_socket.c | 18 ++++++++++++++++++
|
||||
1 file changed, 18 insertions(+)
|
||||
|
||||
diff --git a/svc_socket.c b/svc_socket.c
|
||||
index 8a44604..d2e3abf 100644
|
||||
--- a/svc_socket.c
|
||||
+++ b/svc_socket.c
|
||||
@@ -118,6 +118,15 @@ static int svc_create_sock(struct addrinfo *ai)
|
||||
return -1;
|
||||
}
|
||||
|
||||
+ if (ai->ai_family == AF_INET6) {
|
||||
+ if (setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY,
|
||||
+ &optval, sizeof(optval)) < 0) {
|
||||
+ errstr(_("Cannot set IPv6 socket options: %s\n"), strerror(errno));
|
||||
+ close(fd);
|
||||
+ return -1;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval)) < 0) {
|
||||
errstr(_("Cannot set socket options: %s\n"), strerror(errno));
|
||||
close(fd);
|
||||
@@ -129,6 +138,15 @@ static int svc_create_sock(struct addrinfo *ai)
|
||||
close(fd);
|
||||
return -1;
|
||||
}
|
||||
+
|
||||
+ if (ai->ai_protocol == IPPROTO_TCP) {
|
||||
+ if (listen(fd, SOMAXCONN) < 0) {
|
||||
+ errstr(_("Cannot listen to address: %s\n"), strerror(errno));
|
||||
+ close(fd);
|
||||
+ return -1;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
return fd;
|
||||
}
|
||||
|
||||
--
|
||||
2.14.3
|
||||
|
||||
@ -1,35 +0,0 @@
|
||||
From d7694c952073bf2ebb852014d9f979b5e3e7c018 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Mon, 28 May 2018 18:08:24 +0200
|
||||
Subject: [PATCH] rpc: Fix wrong limit for space usage
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Limit of maximum allowable space usage for RPC transfer was wrongly set
|
||||
to ~4GB instead of ~4TB due to overflow in constant initialization. Fix
|
||||
it.
|
||||
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
quotaio_rpc.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/quotaio_rpc.c b/quotaio_rpc.c
|
||||
index 6f25144..edc1e9f 100644
|
||||
--- a/quotaio_rpc.c
|
||||
+++ b/quotaio_rpc.c
|
||||
@@ -33,7 +33,8 @@ static int rpc_init_io(struct quota_handle *h)
|
||||
#ifdef RPC
|
||||
h->qh_info.dqi_max_b_limit = ~(uint32_t)0;
|
||||
h->qh_info.dqi_max_i_limit = ~(uint32_t)0;
|
||||
- h->qh_info.dqi_max_b_usage = (~(uint32_t)0) << QUOTABLOCK_BITS;
|
||||
+ h->qh_info.dqi_max_b_usage = ((uint64_t)(~(uint32_t)0))
|
||||
+ << QUOTABLOCK_BITS;
|
||||
h->qh_info.dqi_max_i_usage = ~(uint32_t)0;
|
||||
return 0;
|
||||
#else
|
||||
--
|
||||
2.14.3
|
||||
|
||||
@ -1,72 +0,0 @@
|
||||
From bd36c3cf438ac4fd44b6779714ad0a44453d41b5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Mon, 16 Jul 2018 11:22:53 +0200
|
||||
Subject: [PATCH] quota(1): Distinguish between none quota limits and no
|
||||
allocated resources
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
If a user does not occupies any space or inodes on a file system but
|
||||
quota limits are set, quota(1) tool still reports "none":
|
||||
|
||||
# quota -u test
|
||||
Disk quotas for user test (uid 500): none
|
||||
|
||||
That's because the tool skips printing details for file systems
|
||||
without any used resources but uses the shares the message with file
|
||||
system without any quota limits.
|
||||
|
||||
This patch makes the distinction and changes "none" message into "no
|
||||
quota limits set" and "no limited resources used" respectively.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
quota.c | 15 ++++++++++-----
|
||||
1 file changed, 10 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/quota.c b/quota.c
|
||||
index 15c2a53..0303c7d 100644
|
||||
--- a/quota.c
|
||||
+++ b/quota.c
|
||||
@@ -188,7 +188,7 @@ static int showquotas(int type, qid_t id, int mntcnt, char **mnt)
|
||||
char timebuf[MAXTIMELEN];
|
||||
char name[MAXNAMELEN];
|
||||
struct quota_handle **handles;
|
||||
- int lines = 0, bover, iover, over;
|
||||
+ int lines = 0, bover, iover, over, unlimited;
|
||||
time_t now;
|
||||
|
||||
time(&now);
|
||||
@@ -204,11 +204,16 @@ static int showquotas(int type, qid_t id, int mntcnt, char **mnt)
|
||||
goto out_handles;
|
||||
}
|
||||
over = 0;
|
||||
+ unlimited = 1;
|
||||
for (q = qlist; q; q = q->dq_next) {
|
||||
bover = iover = 0;
|
||||
- if (!(flags & FL_VERBOSE) && !q->dq_dqb.dqb_isoftlimit && !q->dq_dqb.dqb_ihardlimit
|
||||
- && !q->dq_dqb.dqb_bsoftlimit && !q->dq_dqb.dqb_bhardlimit)
|
||||
- continue;
|
||||
+ if (!q->dq_dqb.dqb_isoftlimit && !q->dq_dqb.dqb_ihardlimit
|
||||
+ && !q->dq_dqb.dqb_bsoftlimit && !q->dq_dqb.dqb_bhardlimit) {
|
||||
+ if (!(flags & FL_VERBOSE))
|
||||
+ continue;
|
||||
+ } else {
|
||||
+ unlimited = 0;
|
||||
+ }
|
||||
msgi = NULL;
|
||||
if (q->dq_dqb.dqb_ihardlimit && q->dq_dqb.dqb_curinodes >= q->dq_dqb.dqb_ihardlimit) {
|
||||
msgi = _("File limit reached on");
|
||||
@@ -300,7 +305,7 @@ static int showquotas(int type, qid_t id, int mntcnt, char **mnt)
|
||||
}
|
||||
}
|
||||
if (!(flags & FL_QUIET) && !lines && qlist)
|
||||
- heading(type, id, name, _("none"));
|
||||
+ heading(type, id, name, unlimited ? _("none") : _("no limited resources used"));
|
||||
freeprivs(qlist);
|
||||
out_handles:
|
||||
dispose_handle_list(handles);
|
||||
--
|
||||
2.14.4
|
||||
|
||||
@ -1,30 +0,0 @@
|
||||
From 78403029375dbfe809b5b1034301dc687a94397f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Thu, 23 Aug 2018 11:09:10 +0200
|
||||
Subject: [PATCH 1/3] convertquota: Fix a file descriptor leak in
|
||||
convert_endian()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
convertquota.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/convertquota.c b/convertquota.c
|
||||
index d913e05..6c8a553 100644
|
||||
--- a/convertquota.c
|
||||
+++ b/convertquota.c
|
||||
@@ -363,6 +363,7 @@ static int convert_endian(int type, struct mount_entry *mnt)
|
||||
}
|
||||
ret = endian_scan_structures(ofd, type);
|
||||
end_io(qn);
|
||||
+ close(ofd);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
--
|
||||
2.14.4
|
||||
|
||||
|
||||
@ -1,24 +0,0 @@
|
||||
From 0f255ef2570478a855361937445a57a168c8629d Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Thu, 23 Aug 2018 11:23:43 +0200
|
||||
Subject: [PATCH 2/3] quotackeck: Fix a directory descriptor leak in scan_dir()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
quotacheck.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/quotacheck.c b/quotacheck.c
|
||||
index fd01dfc..2cdf475 100644
|
||||
--- a/quotacheck.c
|
||||
+++ b/quotacheck.c
|
||||
@@ -538,6 +538,7 @@
|
||||
if ((lstat(de->d_name, &st)) == -1) {
|
||||
errstr(_("lstat: Cannot stat `%s/%s': %s\nGuess you'd better run fsck first !\nexiting...\n"),
|
||||
pathname, de->d_name, strerror(errno));
|
||||
+ closedir(dp);
|
||||
goto out;
|
||||
}
|
||||
@ -1,25 +0,0 @@
|
||||
From 869f514310b72169a294baa37f5a90a291f719f3 Mon Sep 17 00:00:00 2001From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Thu, 23 Aug 2018 11:51:47 +0200
|
||||
Subject: [PATCH 3/3] xqmstats: Fix a file descriptor leak in main()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
xqmstats.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/xqmstats.c b/xqmstats.c
|
||||
index cdac4a6..59b1d66 100644
|
||||
--- a/xqmstats.c
|
||||
+++ b/xqmstats.c
|
||||
@@ -35,6 +35,7 @@
|
||||
if ((stats = fopen(XQMSTATS, "r")) == NULL) {
|
||||
if ((stats = fopen(STATFILE, "r")) == NULL) {
|
||||
errstr(_("The running kernel does not support XFS\n"));
|
||||
+ fclose(xqm);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
BIN
quota-4.05.tar.gz
Normal file
BIN
quota-4.05.tar.gz
Normal file
Binary file not shown.
26
quota.spec
26
quota.spec
@ -1,7 +1,7 @@
|
||||
Name: quota
|
||||
Version: 4.04
|
||||
Version: 4.05
|
||||
Epoch: 1
|
||||
Release: 11
|
||||
Release: 1
|
||||
Summary: Linux Diskquota system as part of the Linux kernel
|
||||
License: BSD and GPLv2 and GPLv2+ and LGPLv2+
|
||||
URL: http://sourceforge.net/projects/linuxquota/
|
||||
@ -12,23 +12,8 @@ Source2: quota_nld.sysconfig
|
||||
Source3: rpc-rquotad.service
|
||||
Source4: rpc-rquotad.sysconfig
|
||||
|
||||
Patch0000: 0000-quota-4.04-warnquota-configuration-tunes.patch
|
||||
Patch0001: 0001-quota-4.03-Validate-upper-bound-of-RPC-port.patch
|
||||
Patch0002: 0002-quota-4.04-Install-rquota-3-only-if-RPC-is-enabled.patch
|
||||
Patch0003: 0003-quota-4.04-Add-TIRPC_CFLAGS-globally-to-CFLAGS-for-RPC-support-.patch
|
||||
Patch0004: 0004-quota-4.04-repquota-Fix-output-when-user-2-exists.patch
|
||||
Patch0005: 0005-quota-4.04-warnquota-Check-snprintf-for-overflows.patch
|
||||
Patch0006: 0006-quota-4.04-warnquota-Fix-comparing-user-name-to-non-null-termin.patch
|
||||
Patch0007: 0007-quota-4.04-quotacheck-Avoid-question-in-non-interactive-mode.patch
|
||||
Patch0008: 0008-quota-4.04-quotacheck-Report-error-when-caching-of-quota-file-f.patch
|
||||
Patch0009: 0009-quota-4.04-quotacheck-Fail-check-if-quota-file-magic-is-invalid.patch
|
||||
Patch0010: 0010-quota-4.04-Listen-on-a-TCP-socket.patch
|
||||
Patch0011: 0011-quota-4.04-rpc-Fix-wrong-limit-for-space-usage.patch
|
||||
Patch0012: 0012-quota-4.04-quota-1-Distinguish-between-none-quota-limits-and-no.patch
|
||||
|
||||
Patch6000: 6000-Fix-file-descriptor-leaks-in-error-code-paths-1.patch
|
||||
Patch6001: 6001-Fix-file-descriptor-leaks-in-error-code-paths-2.patch
|
||||
Patch6002: 6002-Fix-file-descriptor-leaks-in-error-code-paths-3.patch
|
||||
Patch0000: 0000-Limit-number-of-comparison-characters-to-4.patch
|
||||
Patch0001: 0001-Limit-maximum-of-RPC-port.patch
|
||||
|
||||
BuildRequires: autoconf, automake, coreutils, rpcgen, systemd
|
||||
BuildRequires: e2fsprogs-devel, gettext-devel, openldap-devel
|
||||
@ -137,6 +122,9 @@ make check
|
||||
%{_mandir}/man*/*
|
||||
|
||||
%changelog
|
||||
* Sat Jan 11 2020 renxudong <renxudong1@huawei.com> - 1:4.05-1
|
||||
- Remove some comments
|
||||
|
||||
* Sun Sep 29 2019 zhanghaibo <ted.zhang@huawei.com> - 1:4.04-11
|
||||
- Remove some comments
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user