|
@@ -2511,6 +2511,15 @@ static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
+/**
|
|
|
+ * struct do_proc_dointvec_minmax_conv_param - proc_dointvec_minmax() range checking structure
|
|
|
+ * @min: pointer to minimum allowable value
|
|
|
+ * @max: pointer to maximum allowable value
|
|
|
+ *
|
|
|
+ * The do_proc_dointvec_minmax_conv_param structure provides the
|
|
|
+ * minimum and maximum values for doing range checking for those sysctl
|
|
|
+ * parameters that use the proc_dointvec_minmax() handler.
|
|
|
+ */
|
|
|
struct do_proc_dointvec_minmax_conv_param {
|
|
|
int *min;
|
|
|
int *max;
|
|
@@ -2554,7 +2563,7 @@ static int do_proc_dointvec_minmax_conv(bool *negp, unsigned long *lvalp,
|
|
|
* This routine will ensure the values are within the range specified by
|
|
|
* table->extra1 (min) and table->extra2 (max).
|
|
|
*
|
|
|
- * Returns 0 on success.
|
|
|
+ * Returns 0 on success or -EINVAL on write when the range check fails.
|
|
|
*/
|
|
|
int proc_dointvec_minmax(struct ctl_table *table, int write,
|
|
|
void __user *buffer, size_t *lenp, loff_t *ppos)
|
|
@@ -2567,6 +2576,15 @@ int proc_dointvec_minmax(struct ctl_table *table, int write,
|
|
|
do_proc_dointvec_minmax_conv, ¶m);
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * struct do_proc_douintvec_minmax_conv_param - proc_douintvec_minmax() range checking structure
|
|
|
+ * @min: pointer to minimum allowable value
|
|
|
+ * @max: pointer to maximum allowable value
|
|
|
+ *
|
|
|
+ * The do_proc_douintvec_minmax_conv_param structure provides the
|
|
|
+ * minimum and maximum values for doing range checking for those sysctl
|
|
|
+ * parameters that use the proc_douintvec_minmax() handler.
|
|
|
+ */
|
|
|
struct do_proc_douintvec_minmax_conv_param {
|
|
|
unsigned int *min;
|
|
|
unsigned int *max;
|
|
@@ -2614,7 +2632,7 @@ static int do_proc_douintvec_minmax_conv(unsigned long *lvalp,
|
|
|
* check for UINT_MAX to avoid having to support wrap around uses from
|
|
|
* userspace.
|
|
|
*
|
|
|
- * Returns 0 on success.
|
|
|
+ * Returns 0 on success or -ERANGE on write when the range check fails.
|
|
|
*/
|
|
|
int proc_douintvec_minmax(struct ctl_table *table, int write,
|
|
|
void __user *buffer, size_t *lenp, loff_t *ppos)
|