[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


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236093

            Bug ID: 236093
           Summary: ports-mgmt/pkg: possible error in function
                    format_rate_SI (src/event.c)
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: pkg at FreeBSD.org
          Reporter: samy.mahmoudi at gmail.com
          Assignee: pkg at FreeBSD.org
             Flags: maintainer-feedback?(pkg at FreeBSD.org)

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 " "

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-pkg mailing list