89bb1dad850ac0d0defedcb3746f7959e057e7f4
Stefan Schuermans add cmdline to proc_begin

Stefan Schuermans authored 4 years ago

liblwpttr/src/stringlist.c  1) #include "stringlist.h"
liblwpttr/src/stringlist.c  2) #include "cleaner.h"
Stefan Schuermans factor reading file to sepr...

Stefan Schuermans authored 4 years ago

liblwptev/src/stringlist.c  3) #include "read_file.h"
Stefan Schuermans add cmdline to proc_begin

Stefan Schuermans authored 4 years ago

liblwpttr/src/stringlist.c  4) 
liblwpttr/src/stringlist.c  5) #include <fcntl.h>
liblwpttr/src/stringlist.c  6) #include <stdlib.h>
liblwpttr/src/stringlist.c  7) #include <string.h>
liblwpttr/src/stringlist.c  8) #include <sys/types.h>
liblwpttr/src/stringlist.c  9) #include <sys/stat.h>
liblwpttr/src/stringlist.c 10) #include <unistd.h>
liblwpttr/src/stringlist.c 11) 
Stefan Schuermans rename: lwproctrace -> upro...

Stefan Schuermans authored 4 years ago

libuptev/src/stringlist.c  12) static char ** uptev_stringlist_make_ptrs(char *data, size_t sz,
libuptev/src/stringlist.c  13)                                           size_t *cnt) {
Stefan Schuermans add cmdline to proc_begin

Stefan Schuermans authored 4 years ago

liblwpttr/src/stringlist.c 14)   /* count strings */
liblwpttr/src/stringlist.c 15)   size_t pos = 0;
liblwpttr/src/stringlist.c 16)   *cnt = 0;
liblwpttr/src/stringlist.c 17)   while (pos < sz) {
liblwpttr/src/stringlist.c 18)     pos += strlen(data + pos) + 1;
Stefan Schuermans detect overshooting end of...

Stefan Schuermans authored 4 years ago

libuptev/src/stringlist.c  19)     if (pos > sz) {
libuptev/src/stringlist.c  20)       break; /* last string overshoots end of data -> ignore it */
libuptev/src/stringlist.c  21)     }
Stefan Schuermans add cmdline to proc_begin

Stefan Schuermans authored 4 years ago

liblwpttr/src/stringlist.c 22)     ++*cnt;
liblwpttr/src/stringlist.c 23)   }
liblwpttr/src/stringlist.c 24)   /* allocate array for pointers */
liblwpttr/src/stringlist.c 25)   char **ptrs = malloc(*cnt * sizeof(char *));
liblwpttr/src/stringlist.c 26)   if (! ptrs) {
liblwpttr/src/stringlist.c 27)     *cnt = 0;
liblwpttr/src/stringlist.c 28)     return NULL;
liblwpttr/src/stringlist.c 29)   }
liblwpttr/src/stringlist.c 30)   /* fill pointers into array */
liblwpttr/src/stringlist.c 31)   pos = 0;
liblwpttr/src/stringlist.c 32)   for (size_t i = 0; i < *cnt; ++i) {
liblwpttr/src/stringlist.c 33)     ptrs[i] = data + pos;
liblwpttr/src/stringlist.c 34)     pos += strlen(data + pos) + 1;
liblwpttr/src/stringlist.c 35)   }
liblwpttr/src/stringlist.c 36)   return ptrs;
liblwpttr/src/stringlist.c 37) }
liblwpttr/src/stringlist.c 38) 
Stefan Schuermans rename: lwproctrace -> upro...

Stefan Schuermans authored 4 years ago

libuptev/src/stringlist.c  39) int uptev_stringlist_read(char const *pathname, size_t *n, char ***strs,
libuptev/src/stringlist.c  40)                           uptev_cleaner_t *cleaner) {
Stefan Schuermans add cmdline to proc_begin

Stefan Schuermans authored 4 years ago

liblwpttr/src/stringlist.c 41)   *n = 0;
liblwpttr/src/stringlist.c 42)   *strs = NULL;
liblwpttr/src/stringlist.c 43)   /* read file contents */
liblwpttr/src/stringlist.c 44)   size_t sz;
Stefan Schuermans rename: lwproctrace -> upro...

Stefan Schuermans authored 4 years ago

libuptev/src/stringlist.c  45)   char *data = uptev_read_file(pathname, &sz);
Stefan Schuermans add cmdline to proc_begin

Stefan Schuermans authored 4 years ago

liblwpttr/src/stringlist.c 46)   if (! data) {
liblwpttr/src/stringlist.c 47)     return -1;
liblwpttr/src/stringlist.c 48)   }
liblwpttr/src/stringlist.c 49)   /* create pointer array */
liblwpttr/src/stringlist.c 50)   size_t cnt;
Stefan Schuermans rename: lwproctrace -> upro...

Stefan Schuermans authored 4 years ago

libuptev/src/stringlist.c  51)   char **ptrs = uptev_stringlist_make_ptrs(data, sz, &cnt);
Stefan Schuermans add cmdline to proc_begin

Stefan Schuermans authored 4 years ago

liblwpttr/src/stringlist.c 52)   if (! ptrs) {
Stefan Schuermans rename: lwproctrace -> upro...

Stefan Schuermans authored 4 years ago

libuptev/src/stringlist.c  53)     free(data);
Stefan Schuermans add cmdline to proc_begin

Stefan Schuermans authored 4 years ago

liblwpttr/src/stringlist.c 54)     return -1;
liblwpttr/src/stringlist.c 55)   }
Stefan Schuermans rename: lwproctrace -> upro...

Stefan Schuermans authored 4 years ago

libuptev/src/stringlist.c  56)   /* success: add malloc-ed object to cleaner and return string array */
libuptev/src/stringlist.c  57)   uptev_cleaner_add_ptr(cleaner, data);
libuptev/src/stringlist.c  58)   uptev_cleaner_add_ptr(cleaner, ptrs);