maintainer-feedback requested: [Bug 236093] ports-mgmt/pkg: possible error in function format_rate_SI (src/event.c)

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed Feb 27 22:25:37 UTC 2019


Bugzilla Automation <bugzilla at FreeBSD.org> has asked freebsd-pkg mailing list
<pkg at FreeBSD.org> for maintainer-feedback:
Bug 236093: ports-mgmt/pkg: possible error in function format_rate_SI
(src/event.c)
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236093



--- Description ---
src/event.c:

87 /* units for format_size */						       

88 static const char *unit_SI[] = { " ", "k", "M", "G", "T", };

109 static void 							       

110 format_rate_SI(char *buf, int size, off_t bytes)			       

111 {									       

112	    int i;							       

113									       

114	    bytes *= 100;						       

115	    for (i = 0; bytes >= 100*1000 && unit_SI[i][0] != 'T'; i++)        

116		    bytes = (bytes + 500) / 1000;			       

117	    if (i == 0) {						       

118		    i++;						       

119		    bytes = (bytes + 500) / 1000;			       

120	    }								       

121	    snprintf(buf, size, "%3lld.%1lld%s%s",			       

122		(long long) (bytes + 5) / 100,				       

123		(long long) (bytes + 5) / 10 % 10,			       

124		unit_SI[i],						       

125		i ? "B" : " "); 					       

126 }

Unless I am mistaken, i can not be zero at lines 124-125. As a consequence:

• the first element of unit_SI is never used
• in the call to snprintf, the last argument is always "B", never " "


More information about the freebsd-pkg mailing list