summaryrefslogtreecommitdiffhomepage
path: root/util-linux/readprofile.c
diff options
context:
space:
mode:
Diffstat (limited to 'util-linux/readprofile.c')
-rw-r--r--util-linux/readprofile.c24
1 files changed, 6 insertions, 18 deletions
diff --git a/util-linux/readprofile.c b/util-linux/readprofile.c
index b368067ef..e635f6bf3 100644
--- a/util-linux/readprofile.c
+++ b/util-linux/readprofile.c
@@ -44,9 +44,9 @@ static const char defaultpro[] = "/proc/profile";
int readprofile_main(int argc, char **argv)
{
FILE *map;
- int proFd;
const char *mapFile, *proFile, *mult=0;
- unsigned long len=0, indx=1;
+ unsigned long indx=1;
+ size_t len;
uint64_t add0=0;
unsigned int step;
unsigned int *buf, total, fn_len;
@@ -97,20 +97,8 @@ int readprofile_main(int argc, char **argv)
/*
* Use an fd for the profiling buffer, to skip stdio overhead
*/
-
- proFd = xopen(proFile,O_RDONLY);
-
- if (((int)(len=lseek(proFd,0,SEEK_END)) < 0)
- || (lseek(proFd,0,SEEK_SET) < 0))
- bb_perror_msg_and_die(proFile);
-
- buf = xmalloc(len);
-
- if (read(proFd,buf,len) != len)
- bb_perror_msg_and_die(proFile);
-
- close(proFd);
-
+ len = INT_MAX;
+ buf = xmalloc_open_read_close(proFile, &len);
if (!optNative) {
int entries = len/sizeof(*buf);
int big = 0,small = 0,i;
@@ -123,8 +111,8 @@ int readprofile_main(int argc, char **argv)
small++;
}
if (big > small) {
- bb_error_msg("Assuming reversed byte order. "
- "Use -n to force native byte order.");
+ bb_error_msg("assuming reversed byte order, "
+ "use -n to force native byte order");
for (p = buf; p < buf+entries; p++)
for (i = 0; i < sizeof(*buf)/2; i++) {
unsigned char *b = (unsigned char *) p;