Index: lib/libugidfw/ugidfw.c =================================================================== --- lib/libugidfw/ugidfw.c (revision 209192) +++ lib/libugidfw/ugidfw.c (working copy) @@ -63,22 +63,22 @@ struct passwd *pwd; struct statfs *mntbuf; char *cur, type[sizeof(rule->mbr_object.mbo_type) * CHAR_BIT + 1]; - size_t left, len; - int anymode, unknownmode, truncated, numfs, i, notdone; + size_t left; + int len, anymode, unknownmode, truncated, numfs, i, notdone; cur = buf; left = buflen; truncated = 0; len = snprintf(cur, left, "subject "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; if (rule->mbr_subject.mbs_flags) { if (rule->mbr_subject.mbs_neg == MBS_ALL_FLAGS) { len = snprintf(cur, left, "not "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; @@ -89,7 +89,7 @@ if (!notdone && (rule->mbr_subject.mbs_neg & MBO_UID_DEFINED)) { len = snprintf(cur, left, "! "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; @@ -99,14 +99,14 @@ if (pwd != NULL) { len = snprintf(cur, left, "uid %s", pwd->pw_name); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } else { len = snprintf(cur, left, "uid %u", rule->mbr_subject.mbs_uid_min); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; @@ -117,21 +117,21 @@ if (pwd != NULL) { len = snprintf(cur, left, ":%s ", pwd->pw_name); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } else { len = snprintf(cur, left, ":%u ", rule->mbr_subject.mbs_uid_max); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } } else { len = snprintf(cur, left, " "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; @@ -139,7 +139,7 @@ } if (!notdone && (rule->mbr_subject.mbs_neg & MBO_GID_DEFINED)) { len = snprintf(cur, left, "! "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; @@ -149,14 +149,14 @@ if (grp != NULL) { len = snprintf(cur, left, "gid %s", grp->gr_name); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } else { len = snprintf(cur, left, "gid %u", rule->mbr_subject.mbs_gid_min); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; @@ -167,21 +167,21 @@ if (grp != NULL) { len = snprintf(cur, left, ":%s ", grp->gr_name); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } else { len = snprintf(cur, left, ":%u ", rule->mbr_subject.mbs_gid_max); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } } else { len = snprintf(cur, left, " "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; @@ -189,7 +189,7 @@ } if (!notdone && (rule->mbr_subject.mbs_neg & MBS_PRISON_DEFINED)) { len = snprintf(cur, left, "! "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; @@ -197,7 +197,7 @@ if (rule->mbr_subject.mbs_flags & MBS_PRISON_DEFINED) { len = snprintf(cur, left, "jailid %d ", rule->mbr_subject.mbs_prison); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; @@ -205,14 +205,14 @@ } len = snprintf(cur, left, "object "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; if (rule->mbr_object.mbo_flags) { if (rule->mbr_object.mbo_neg == MBO_ALL_FLAGS) { len = snprintf(cur, left, "not "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; @@ -223,7 +223,7 @@ if (!notdone && (rule->mbr_object.mbo_neg & MBO_UID_DEFINED)) { len = snprintf(cur, left, "! "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; @@ -233,14 +233,14 @@ if (pwd != NULL) { len = snprintf(cur, left, "uid %s", pwd->pw_name); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } else { len = snprintf(cur, left, "uid %u", rule->mbr_object.mbo_uid_min); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; @@ -251,21 +251,21 @@ if (pwd != NULL) { len = snprintf(cur, left, ":%s ", pwd->pw_name); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } else { len = snprintf(cur, left, ":%u ", rule->mbr_object.mbo_uid_max); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } } else { len = snprintf(cur, left, " "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; @@ -273,7 +273,7 @@ } if (!notdone && (rule->mbr_object.mbo_neg & MBO_GID_DEFINED)) { len = snprintf(cur, left, "! "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; @@ -283,14 +283,14 @@ if (grp != NULL) { len = snprintf(cur, left, "gid %s", grp->gr_name); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } else { len = snprintf(cur, left, "gid %u", rule->mbr_object.mbo_gid_min); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; @@ -301,21 +301,21 @@ if (grp != NULL) { len = snprintf(cur, left, ":%s ", grp->gr_name); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } else { len = snprintf(cur, left, ":%u ", rule->mbr_object.mbo_gid_max); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } } else { len = snprintf(cur, left, " "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; @@ -323,7 +323,7 @@ } if (!notdone && (rule->mbr_object.mbo_neg & MBO_FSID_DEFINED)) { len = snprintf(cur, left, "! "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; @@ -337,70 +337,70 @@ break; len = snprintf(cur, left, "filesys %s ", i == numfs ? "???" : mntbuf[i].f_mntonname); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } if (!notdone && (rule->mbr_object.mbo_neg & MBO_SUID)) { len = snprintf(cur, left, "! "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } if (rule->mbr_object.mbo_flags & MBO_SUID) { len = snprintf(cur, left, "suid "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } if (!notdone && (rule->mbr_object.mbo_neg & MBO_SGID)) { len = snprintf(cur, left, "! "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } if (rule->mbr_object.mbo_flags & MBO_SGID) { len = snprintf(cur, left, "sgid "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } if (!notdone && (rule->mbr_object.mbo_neg & MBO_UID_SUBJECT)) { len = snprintf(cur, left, "! "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } if (rule->mbr_object.mbo_flags & MBO_UID_SUBJECT) { len = snprintf(cur, left, "uid_of_subject "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } if (!notdone && (rule->mbr_object.mbo_neg & MBO_GID_SUBJECT)) { len = snprintf(cur, left, "! "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } if (rule->mbr_object.mbo_flags & MBO_GID_SUBJECT) { len = snprintf(cur, left, "gid_of_subject "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; } if (!notdone && (rule->mbr_object.mbo_neg & MBO_TYPE_DEFINED)) { len = snprintf(cur, left, "! "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; @@ -427,7 +427,7 @@ } type[i++] = '\0'; len = snprintf(cur, left, "type %s ", type); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; @@ -435,7 +435,7 @@ } len = snprintf(cur, left, "mode "); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; cur += len; @@ -445,7 +445,7 @@ if (rule->mbr_mode & MBI_ADMIN) { len = snprintf(cur, left, "a"); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; @@ -453,7 +453,7 @@ } if (rule->mbr_mode & MBI_READ) { len = snprintf(cur, left, "r"); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; @@ -461,7 +461,7 @@ } if (rule->mbr_mode & MBI_STAT) { len = snprintf(cur, left, "s"); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; @@ -469,7 +469,7 @@ } if (rule->mbr_mode & MBI_WRITE) { len = snprintf(cur, left, "w"); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; @@ -477,7 +477,7 @@ } if (rule->mbr_mode & MBI_EXEC) { len = snprintf(cur, left, "x"); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; @@ -485,7 +485,7 @@ } if (!anymode) { len = snprintf(cur, left, "n"); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; @@ -493,7 +493,7 @@ } if (unknownmode) { len = snprintf(cur, left, "?"); - if (len < 0 || len > left) + if (len < 0 || len >= left) goto truncated; left -= len; @@ -513,7 +513,6 @@ uid_t uid1, uid2; char *spec1, *spec2, *endp; unsigned long value; - size_t len; spec2 = spec; spec1 = strsep(&spec2, ":"); @@ -524,8 +523,7 @@ else { value = strtoul(spec1, &endp, 10); if (*endp != '\0') { - len = snprintf(errstr, buflen, - "invalid uid: '%s'", spec1); + snprintf(errstr, buflen, "invalid uid: '%s'", spec1); return (-1); } uid1 = value; @@ -542,8 +540,7 @@ else { value = strtoul(spec2, &endp, 10); if (*endp != '\0') { - len = snprintf(errstr, buflen, - "invalid uid: '%s'", spec2); + snprintf(errstr, buflen, "invalid uid: '%s'", spec2); return (-1); } uid2 = value; @@ -562,7 +559,6 @@ gid_t gid1, gid2; char *spec1, *spec2, *endp; unsigned long value; - size_t len; spec2 = spec; spec1 = strsep(&spec2, ":"); @@ -573,8 +569,7 @@ else { value = strtoul(spec1, &endp, 10); if (*endp != '\0') { - len = snprintf(errstr, buflen, - "invalid gid: '%s'", spec1); + snprintf(errstr, buflen, "invalid gid: '%s'", spec1); return (-1); } gid1 = value; @@ -591,8 +586,7 @@ else { value = strtoul(spec2, &endp, 10); if (*endp != '\0') { - len = snprintf(errstr, buflen, - "invalid gid: '%s'", spec2); + snprintf(errstr, buflen, "invalid gid: '%s'", spec2); return (-1); } gid2 = value; @@ -614,7 +608,6 @@ uid_t uid_min, uid_max; gid_t gid_min, gid_max; int jid; - size_t len; long value; current = 0; @@ -631,11 +624,11 @@ while (current < argc) { if (strcmp(argv[current], "uid") == 0) { if (current + 2 > argc) { - len = snprintf(errstr, buflen, "uid short"); + snprintf(errstr, buflen, "uid short"); return (-1); } if (flags & MBS_UID_DEFINED) { - len = snprintf(errstr, buflen, "one uid only"); + snprintf(errstr, buflen, "one uid only"); return (-1); } if (bsde_parse_uidrange(argv[current+1], @@ -649,11 +642,11 @@ current += 2; } else if (strcmp(argv[current], "gid") == 0) { if (current + 2 > argc) { - len = snprintf(errstr, buflen, "gid short"); + snprintf(errstr, buflen, "gid short"); return (-1); } if (flags & MBS_GID_DEFINED) { - len = snprintf(errstr, buflen, "one gid only"); + snprintf(errstr, buflen, "one gid only"); return (-1); } if (bsde_parse_gidrange(argv[current+1], @@ -667,17 +660,17 @@ current += 2; } else if (strcmp(argv[current], "jailid") == 0) { if (current + 2 > argc) { - len = snprintf(errstr, buflen, "prison short"); + snprintf(errstr, buflen, "prison short"); return (-1); } if (flags & MBS_PRISON_DEFINED) { - len = snprintf(errstr, buflen, "one jail only"); + snprintf(errstr, buflen, "one jail only"); return (-1); } value = strtol(argv[current+1], &endp, 10); if (*endp != '\0') { - len = snprintf(errstr, buflen, - "invalid jid: '%s'", argv[current+1]); + snprintf(errstr, buflen, "invalid jid: '%s'", + argv[current+1]); return (-1); } jid = value; @@ -689,14 +682,13 @@ current += 2; } else if (strcmp(argv[current], "!") == 0) { if (nextnot) { - len = snprintf(errstr, buflen, - "double negative"); + snprintf(errstr, buflen, "double negative"); return (-1); } nextnot = 1; current += 1; } else { - len = snprintf(errstr, buflen, "'%s' not expected", + snprintf(errstr, buflen, "'%s' not expected", argv[current]); return (-1); } @@ -724,7 +716,6 @@ int bsde_parse_type(char *spec, int *type, size_t buflen, char *errstr) { - size_t len; int i; *type = 0; @@ -756,7 +747,7 @@ *type |= MBO_ALL_TYPE; break; default: - len = snprintf(errstr, buflen, "Unknown type code: %c", + snprintf(errstr, buflen, "Unknown type code: %c", spec[i]); return (-1); } @@ -768,12 +759,11 @@ int bsde_parse_fsid(char *spec, struct fsid *fsid, size_t buflen, char *errstr) { - size_t len; struct statfs buf; if (statfs(spec, &buf) < 0) { - len = snprintf(errstr, buflen, "Unable to get id for %s: %s", - spec, strerror(errno)); + snprintf(errstr, buflen, "Unable to get id for %s: %s", spec, + strerror(errno)); return (-1); } @@ -792,7 +782,6 @@ gid_t gid_min, gid_max; int type; struct fsid fsid; - size_t len; current = 0; flags = 0; @@ -808,11 +797,11 @@ while (current < argc) { if (strcmp(argv[current], "uid") == 0) { if (current + 2 > argc) { - len = snprintf(errstr, buflen, "uid short"); + snprintf(errstr, buflen, "uid short"); return (-1); } if (flags & MBO_UID_DEFINED) { - len = snprintf(errstr, buflen, "one uid only"); + snprintf(errstr, buflen, "one uid only"); return (-1); } if (bsde_parse_uidrange(argv[current+1], @@ -826,11 +815,11 @@ current += 2; } else if (strcmp(argv[current], "gid") == 0) { if (current + 2 > argc) { - len = snprintf(errstr, buflen, "gid short"); + snprintf(errstr, buflen, "gid short"); return (-1); } if (flags & MBO_GID_DEFINED) { - len = snprintf(errstr, buflen, "one gid only"); + snprintf(errstr, buflen, "one gid only"); return (-1); } if (bsde_parse_gidrange(argv[current+1], @@ -844,11 +833,11 @@ current += 2; } else if (strcmp(argv[current], "filesys") == 0) { if (current + 2 > argc) { - len = snprintf(errstr, buflen, "filesys short"); + snprintf(errstr, buflen, "filesys short"); return (-1); } if (flags & MBO_FSID_DEFINED) { - len = snprintf(errstr, buflen, "one fsid only"); + snprintf(errstr, buflen, "one fsid only"); return (-1); } if (bsde_parse_fsid(argv[current+1], &fsid, @@ -890,11 +879,11 @@ current += 1; } else if (strcmp(argv[current], "type") == 0) { if (current + 2 > argc) { - len = snprintf(errstr, buflen, "type short"); + snprintf(errstr, buflen, "type short"); return (-1); } if (flags & MBO_TYPE_DEFINED) { - len = snprintf(errstr, buflen, "one type only"); + snprintf(errstr, buflen, "one type only"); return (-1); } if (bsde_parse_type(argv[current+1], &type, @@ -908,14 +897,13 @@ current += 2; } else if (strcmp(argv[current], "!") == 0) { if (nextnot) { - len = snprintf(errstr, buflen, - "double negative'"); + snprintf(errstr, buflen, "double negative'"); return (-1); } nextnot = 1; current += 1; } else { - len = snprintf(errstr, buflen, "'%s' not expected", + snprintf(errstr, buflen, "'%s' not expected", argv[current]); return (-1); } @@ -946,16 +934,15 @@ bsde_parse_mode(int argc, char *argv[], mode_t *mode, size_t buflen, char *errstr) { - size_t len; int i; if (argc == 0) { - len = snprintf(errstr, buflen, "mode expects mode value"); + snprintf(errstr, buflen, "mode expects mode value"); return (-1); } if (argc != 1) { - len = snprintf(errstr, buflen, "'%s' unexpected", argv[1]); + snprintf(errstr, buflen, "'%s' unexpected", argv[1]); return (-1); } @@ -981,7 +968,7 @@ /* ignore */ break; default: - len = snprintf(errstr, buflen, "Unknown mode letter: %c", + snprintf(errstr, buflen, "Unknown mode letter: %c", argv[0][i]); return (-1); } @@ -998,17 +985,16 @@ int object, object_elements, object_elements_length; int mode, mode_elements, mode_elements_length; int error, i; - size_t len; bzero(rule, sizeof(*rule)); if (argc < 1) { - len = snprintf(errstr, buflen, "Rule must begin with subject"); + snprintf(errstr, buflen, "Rule must begin with subject"); return (-1); } if (strcmp(argv[0], "subject") != 0) { - len = snprintf(errstr, buflen, "Rule must begin with subject"); + snprintf(errstr, buflen, "Rule must begin with subject"); return (-1); } subject = 0; @@ -1022,7 +1008,7 @@ object = i; if (object == -1) { - len = snprintf(errstr, buflen, "Rule must contain an object"); + snprintf(errstr, buflen, "Rule must contain an object"); return (-1); } @@ -1033,7 +1019,7 @@ mode = i; if (mode == -1) { - len = snprintf(errstr, buflen, "Rule must contain mode"); + snprintf(errstr, buflen, "Rule must contain mode"); return (-1); } @@ -1112,12 +1098,12 @@ len = sizeof(version); error = sysctlbyname(MIB ".rule_version", &version, &len, NULL, 0); if (error) { - len = snprintf(errstr, buflen, "version check failed: %s", + snprintf(errstr, buflen, "version check failed: %s", strerror(errno)); return (-1); } if (version != MB_VERSION) { - len = snprintf(errstr, buflen, "module v%d != library v%d", + snprintf(errstr, buflen, "module v%d != library v%d", version, MB_VERSION); return (-1); } @@ -1134,12 +1120,11 @@ len = sizeof(rule_count); error = sysctlbyname(MIB ".rule_count", &rule_count, &len, NULL, 0); if (error) { - len = snprintf(errstr, buflen, strerror(errno)); + snprintf(errstr, buflen, "%s", strerror(errno)); return (-1); } if (len != sizeof(rule_count)) { - len = snprintf(errstr, buflen, "Data error in %s.rule_count", - MIB); + snprintf(errstr, buflen, "Data error in %s.rule_count", MIB); return (-1); } @@ -1156,12 +1141,11 @@ len = sizeof(rule_slots); error = sysctlbyname(MIB ".rule_slots", &rule_slots, &len, NULL, 0); if (error) { - len = snprintf(errstr, buflen, strerror(errno)); + snprintf(errstr, buflen, "%s", strerror(errno)); return (-1); } if (len != sizeof(rule_slots)) { - len = snprintf(errstr, buflen, "Data error in %s.rule_slots", - MIB); + snprintf(errstr, buflen, "Data error in %s.rule_slots", MIB); return (-1); } @@ -1187,7 +1171,7 @@ len = 10; error = bsde_get_mib(MIB ".rules", name, &len); if (error) { - len = snprintf(errstr, errlen, "%s: %s", MIB ".rules", + snprintf(errstr, errlen, "%s: %s", MIB ".rules", strerror(errno)); return (-1); } @@ -1199,11 +1183,11 @@ if (error == -1 && errno == ENOENT) return (-2); if (error) { - len = snprintf(errstr, errlen, "%s.%d: %s", MIB ".rules", - rulenum, strerror(errno)); + snprintf(errstr, errlen, "%s.%d: %s", MIB ".rules", rulenum, + strerror(errno)); return (-1); } else if (size != sizeof(*rule)) { - len = snprintf(errstr, errlen, "Data error in %s.%d: %s", + snprintf(errstr, errlen, "Data error in %s.%d: %s", MIB ".rules", rulenum, strerror(errno)); return (-1); } @@ -1225,7 +1209,7 @@ len = 10; error = bsde_get_mib(MIB ".rules", name, &len); if (error) { - len = snprintf(errstr, buflen, "%s: %s", MIB ".rules", + snprintf(errstr, buflen, "%s: %s", MIB ".rules", strerror(errno)); return (-1); } @@ -1236,7 +1220,7 @@ size = sizeof(rule); error = sysctl(name, len, NULL, NULL, &rule, 0); if (error) { - len = snprintf(errstr, buflen, "%s.%d: %s", MIB ".rules", + snprintf(errstr, buflen, "%s.%d: %s", MIB ".rules", rulenum, strerror(errno)); return (-1); } @@ -1258,7 +1242,7 @@ len = 10; error = bsde_get_mib(MIB ".rules", name, &len); if (error) { - len = snprintf(errstr, buflen, "%s: %s", MIB ".rules", + snprintf(errstr, buflen, "%s: %s", MIB ".rules", strerror(errno)); return (-1); } @@ -1269,7 +1253,7 @@ size = sizeof(*rule); error = sysctl(name, len, NULL, NULL, rule, size); if (error) { - len = snprintf(errstr, buflen, "%s.%d: %s", MIB ".rules", + snprintf(errstr, buflen, "%s.%d: %s", MIB ".rules", rulenum, strerror(errno)); return (-1); } @@ -1292,14 +1276,14 @@ len = 10; error = bsde_get_mib(MIB ".rules", name, &len); if (error) { - len = snprintf(errstr, buflen, "%s: %s", MIB ".rules", + snprintf(errstr, buflen, "%s: %s", MIB ".rules", strerror(errno)); return (-1); } rule_slots = bsde_get_rule_slots(BUFSIZ, charstr); if (rule_slots == -1) { - len = snprintf(errstr, buflen, "unable to get rule slots: %s", + snprintf(errstr, buflen, "unable to get rule slots: %s", strerror(errno)); return (-1); } @@ -1310,8 +1294,8 @@ size = sizeof(*rule); error = sysctl(name, len, NULL, NULL, rule, size); if (error) { - len = snprintf(errstr, buflen, "%s.%d: %s", MIB ".rules", - rule_slots, strerror(errno)); + snprintf(errstr, buflen, "%s.%d: %s", MIB ".rules", rule_slots, + strerror(errno)); return (-1); }