struct file {
FILE *fp;
+ void *line_alloc;
const void **lines;
const void *got_buf;
str = strdup("A\n");
str[0] += i;
+ files[i].line_alloc = str;
files[i].lines = reallocarray(NULL, LINE_COUNT, sizeof(char *));
files[i].lines[0] = str;
files[i].lines[1] = str;
}
}
- for (i = 0; i < LINE_COUNT; i++)
+ for (i = 0; i < FILE_COUNT; i++) {
+ free(files[i].line_alloc);
+ free(files[i].lines);
pipe_close(files[i].fp);
+ }
}
static void
wstr = wcsdup(L"A\n");
wstr[0] += i;
+ files[i].line_alloc = wstr;
files[i].lines = reallocarray(NULL, LINE_COUNT, sizeof(char *));
files[i].lines[0] = wstr;
files[i].lines[1] = wstr;
}
}
- for (i = 0; i < LINE_COUNT; i++)
+ for (i = 0; i < FILE_COUNT; i++) {
+ free(files[i].line_alloc);
+ free(files[i].lines);
pipe_close(files[i].fp);
+ }
}
static void
*/
#include <assert.h>
+#include <stdlib.h>
#include <unistd.h>
int
main(int argc, char **argv)
{
+ void *set;
+
umask(0);
- assert(getmode(setmode("0"), 0) == 0);
+ set = setmode("0");
+ assert(getmode(set, 0) == 0);
+ free(set);
+
+ set = setmode("7777");
+ assert(getmode(set, 0) == 07777);
+ free(set);
- assert(getmode(setmode("7777"), 0) == 07777);
- assert(getmode(setmode("1555"), 0) == 01555);
+ set = setmode("1555");
+ assert(getmode(set, 0) == 01555);
+ free(set);
- assert(getmode(setmode("ugo=rwx"), 0) == 0777);
+ set = setmode("ugo=rwx");
+ assert(getmode(set, 0) == 0777);
+ free(set);
/* FIXME: Complete unit tests. */