offset_t llseek_ret = 0;
int write_ret = 0;
int err = 0;
- char mybuf[5];
+ char mybuf[5] = "aaaa\0";
char *testfile;
mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
fd = open(testfile, O_CREAT | O_RDWR, mode);
if (fd < 0) {
- perror("Failed to create testfile");
err = errno;
- goto out;
+ perror("Failed to create testfile");
+ free(testfile);
+ return (err);
}
llseek_ret = lseek64(fd, offset, SEEK_SET);
if (llseek_ret < 0) {
- perror("Failed to seek to end of testfile");
err = errno;
+ perror("Failed to seek to end of testfile");
goto out;
}
write_ret = write(fd, mybuf, 1);
if (write_ret < 0) {
- perror("Failed to write to end of file");
err = errno;
+ perror("Failed to write to end of file");
goto out;
}
offset = 0;
llseek_ret = lseek64(fd, offset, SEEK_CUR);
if (llseek_ret < 0) {
- perror("Failed to seek to end of file");
err = errno;
+ perror("Failed to seek to end of file");
goto out;
}
(void) printf("write errno=EFBIG: success\n");
err = 0;
} else {
- perror("Did not receive EFBIG");
err = errno;
+ perror("Did not receive EFBIG");
}
} else {
(void) printf("write completed successfully, test failed\n");
out:
(void) unlink(testfile);
free(testfile);
+ close(fd);
return (err);
}
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <sys/mman.h>
#include <pthread.h>
main(int argc, char **argv)
{
int fd;
- char buf[BUFSIZ];
+ char buf[1024];
pthread_t tid;
+ memset(buf, 'a', sizeof (buf));
+
if (argc != 2) {
(void) printf("usage: %s <file name>\n", argv[0]);
exit(1);
(void) pthread_setconcurrency(2);
if (pthread_create(&tid, NULL, mapper, &fd) != 0) {
perror("pthread_create");
+ close(fd);
exit(1);
}
for (;;) {
if (write(fd, buf, sizeof (buf)) == -1) {
perror("write");
+ close(fd);
exit(1);
}
}
+ close(fd);
+
/* NOTREACHED */
return (0);
}
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
+#include <string.h>
#include <linux/falloc.h>
/*
main(int argc, char *argv[])
{
char *filename = NULL;
- char *buf;
+ char *buf = NULL;
size_t filesize = 0;
off_t start_off = 0;
off_t off_len = 0;
return (1);
}
- buf = (char *)malloc(filesize);
+ buf = (char *)calloc(1, filesize);
+ if (buf == NULL) {
+ perror("write");
+ close(fd);
+ return (1);
+ }
+ memset(buf, 'c', filesize);
if (write(fd, buf, filesize) < filesize) {
free(buf);
perror("write");
+ close(fd);
return (1);
}
if (fallocate(fd, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE,
start_off, off_len) < 0) {
perror("fallocate");
+ close(fd);
return (1);
}
#else /* !(defined(FALLOC_FL_PUNCH_HOLE) && defined(FALLOC_FL_KEEP_SIZE)) */
{
perror("FALLOC_FL_PUNCH_HOLE unsupported");
+ close(fd);
return (1);
}
#endif /* defined(FALLOC_FL_PUNCH_HOLE) && defined(FALLOC_FL_KEEP_SIZE) */
-
+ close(fd);
return (0);
}