net-snmp: add early return when CommunityName is unset

snmpd_access_default_add, snmpd_access_HostName_add, and
snmpd_access_HostIP_add would write unintended output to the
config file if the CommunityName option is not specified. Add an
early return to each function to prevent writing in that case.

This is a breaking change for configs where CommunityName is
unset. Previously, an empty CommunityName option would result in
a malformed directive with a double space and no guaranteed
newline, the exact form of which depended on the values of other
options. Now, no directive is written.

Signed-off-by: Eric McDonald <librick-openwrt@proton.me>
This commit is contained in:
Eric McDonald
2026-03-07 13:48:14 -08:00
committed by Florian Eckert
parent c3862ec354
commit dbd293d751
+3
View File
@@ -132,6 +132,7 @@ snmpd_access_default_add() {
config_get mode "$cfg" Mode
[ -n "$mode" ] || return 0
config_get community "$cfg" CommunityName
[ -n "$community" ] || return 0
config_get oidrestrict "$cfg" RestrictOID
config_get oid "$cfg" RestrictedOID
echo -n "$mode $community default" >> $CONFIGFILE
@@ -145,6 +146,7 @@ snmpd_access_HostName_add() {
config_get mode "$cfg" Mode
[ -n "$mode" ] || return 0
config_get community "$cfg" CommunityName
[ -n "$community" ] || return 0
config_get oidrestrict "$cfg" RestrictOID
config_get oid "$cfg" RestrictedOID
echo -n "$mode $community $hostname" >> $CONFIGFILE
@@ -159,6 +161,7 @@ snmpd_access_HostIP_add() {
config_get mode "$cfg" Mode
[ -n "$mode" ] || return 0
config_get community "$cfg" CommunityName
[ -n "$community" ] || return 0
config_get oidrestrict "$cfg" RestrictOID
config_get oid "$cfg" RestrictedOID
echo -n "$mode $community $host_ip/$ip_mask" >> $CONFIGFILE