mirror of
https://github.com/mapbox/tippecanoe.git
synced 2025-02-22 18:12:40 +00:00
Exit cleanly if there was no valid input instead of giving an mmap error
This commit is contained in:
parent
cf2abf67d2
commit
5a2a1b793a
17
geojson.c
17
geojson.c
@ -891,7 +891,7 @@ void *run_sort(void *v) {
|
||||
// MAP_PRIVATE to avoid disk writes if it fits in memory
|
||||
void *map = mmap(NULL, end - start, PROT_READ | PROT_WRITE, MAP_PRIVATE, a->indexfd, start);
|
||||
if (map == MAP_FAILED) {
|
||||
perror("mmap");
|
||||
perror("mmap in run_sort");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
@ -1450,7 +1450,7 @@ int read_json(int argc, char **argv, char *fname, const char *layername, int max
|
||||
if (reader[i].indexpos > 0) {
|
||||
void *map = mmap(NULL, reader[i].indexpos, PROT_READ, MAP_PRIVATE, reader[i].indexfd, 0);
|
||||
if (map == MAP_FAILED) {
|
||||
perror("mmap");
|
||||
perror("mmap reunifying index");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if (fwrite(map, reader[i].indexpos, 1, indexfile) != 1) {
|
||||
@ -1468,6 +1468,11 @@ int read_json(int argc, char **argv, char *fname, const char *layername, int max
|
||||
}
|
||||
fclose(indexfile);
|
||||
|
||||
if (indexpos == 0) {
|
||||
fprintf(stderr, "Did not read any valid geometries\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
char geomname[strlen(tmpdir) + strlen("/geom.XXXXXXXX") + 1];
|
||||
|
||||
FILE *geomfile;
|
||||
@ -1544,7 +1549,7 @@ int read_json(int argc, char **argv, char *fname, const char *layername, int max
|
||||
|
||||
char *map = mmap(NULL, indexpos, PROT_READ | PROT_WRITE, MAP_SHARED, indexfd, 0);
|
||||
if (map == MAP_FAILED) {
|
||||
perror("mmap");
|
||||
perror("mmap unified index");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
@ -1599,7 +1604,7 @@ int read_json(int argc, char **argv, char *fname, const char *layername, int max
|
||||
long long pre_merged_geompos = geompos;
|
||||
char *geom_map = mmap(NULL, geompos, PROT_READ, MAP_PRIVATE, geomfd, 0);
|
||||
if (geom_map == MAP_FAILED) {
|
||||
perror("mmap");
|
||||
perror("mmap geometry");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
@ -1664,7 +1669,7 @@ int read_json(int argc, char **argv, char *fname, const char *layername, int max
|
||||
if (basezoom < 0 || droprate < 0) {
|
||||
struct index *map = mmap(NULL, indexpos, PROT_READ, MAP_PRIVATE, indexfd, 0);
|
||||
if (map == MAP_FAILED) {
|
||||
perror("mmap");
|
||||
perror("mmap index for basezoom");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
@ -1915,7 +1920,7 @@ int read_json(int argc, char **argv, char *fname, const char *layername, int max
|
||||
if (reader[i].metapos > 0) {
|
||||
void *map = mmap(NULL, reader[i].metapos, PROT_READ, MAP_PRIVATE, reader[i].metafd, 0);
|
||||
if (map == MAP_FAILED) {
|
||||
perror("mmap");
|
||||
perror("mmap unmerged meta");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if (fwrite(map, reader[i].metapos, 1, metafile) != 1) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user