From 95010e97559117e24a0f7ad47ceb1048ff50991e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20H=C3=B6hn?= Date: Sat, 20 Jan 2018 22:46:10 +0100 Subject: fix:build:fixed compiler warning in maptool module --- navit/maptool/buffer.c | 4 +++- navit/maptool/ch.c | 16 +++++++++++++--- navit/maptool/maptool.c | 29 ++++++++++++++++++++++++----- navit/maptool/tile.c | 5 ++++- navit/maptool/zip.c | 7 +++++-- 5 files changed, 49 insertions(+), 12 deletions(-) diff --git a/navit/maptool/buffer.c b/navit/maptool/buffer.c index 2907b0670..be0e269c1 100644 --- a/navit/maptool/buffer.c +++ b/navit/maptool/buffer.c @@ -60,7 +60,9 @@ load_buffer(char *filename, struct buffer *b, long long offset, long long size) fseeko(f, offset, SEEK_SET); b->base=malloc(b->size); dbg_assert(b->base != NULL); - fread(b->base, b->size, 1, f); + if (fread(b->base, b->size, 1, f) == 0){ + dbg(lvl_warning, "fread failed"); + } fclose(f); } diff --git a/navit/maptool/ch.c b/navit/maptool/ch.c index b1b0b1bf6..0979cccce 100644 --- a/navit/maptool/ch.c +++ b/navit/maptool/ch.c @@ -204,7 +204,10 @@ ch_generate_ddsg(FILE *in, FILE *ref, FILE *idx, FILE *ddsg) int n1,n2,speed=road_speed(ib->type); struct item_id road_id; double l; - fread(&road_id, sizeof(road_id), 1, ref); + + if (fread(&road_id, sizeof(road_id), 1, ref) == 0){ + dbg(lvl_warning, "fread failed"); + } if (speed) { struct edge_hash_item *hi=g_slice_new(struct edge_hash_item); struct item_id *id=g_slice_new(struct item_id); @@ -229,12 +232,19 @@ ch_generate_sgr(char *suffix) { #ifndef HAVE_API_WIN32_CE char command[1024]; + int system_result; sprintf(command,"./contraction-hierarchies-20080621/main -s -p -f ddsg_%s.tmp -o hcn_%s.tmp -l hcn_log_%s.tmp -x 190 -y 1 -e 600 -p 1000 -k 1,3.3,2,10,3,10,5",suffix,suffix,suffix); printf("%s\n",command); - system(command); + system_result = system(command); + if (system_result == -1){ + dbg(lvl_warning, "Running main failed"); + } sprintf(command,"./contraction-hierarchies-20080621/main -c -f ddsg_%s.tmp -h hcn_%s.tmp -k 1,3.3,2,10,3,10,5 -C ch_%s.tmp -O 1 -z sgr_%s.tmp",suffix,suffix,suffix,suffix); printf("%s\n",command); - system(command); + system_result = system(command); + if (system_result == -1){ + dbg(lvl_warning, "Running main failed"); + } #endif } diff --git a/navit/maptool/maptool.c b/navit/maptool/maptool.c index b1db65eeb..9965a9f16 100644 --- a/navit/maptool/maptool.c +++ b/navit/maptool/maptool.c @@ -26,6 +26,7 @@ #include #include #include +#include #ifdef _MSC_VER #include "getopt_long.h" #define atoll _atoi64 @@ -130,6 +131,7 @@ progress_time(void) const int buflen=20; char buf[buflen]; int pos=1; + int write_result; buf[0]=' '; #ifdef _WIN32 gettimeofday(&ts, NULL); @@ -141,7 +143,10 @@ progress_time(void) seconds%=60; pos+=assafe_strcp2buf(seconds>9?":":":0", buflen-pos, buf+pos); pos+=assafe_lltoa(seconds, buflen-pos, buf+pos); - write(2,buf,pos); + write_result = write(2,buf,pos); + if (write_result == -1){ + dbg(lvl_warning, "Writing progress time failed. Error-Code: %d" , errno); + } } static void @@ -152,10 +157,14 @@ progress_memory(void) const int buflen=20; char buf[buflen]; int pos=1; + int write_result; buf[0]=' '; pos+=assafe_lltoa(mem/1024/1024, buflen-pos, buf+pos); pos+=assafe_strcp2buf(" MB", buflen-pos, buf+pos); - write(2,buf,pos); + write_result = write(2,buf,pos); + if (write_result == -1){ + dbg(lvl_warning, "Writing progress memory failed. Error-Code: %d" , errno); + } #endif } @@ -165,6 +174,7 @@ sig_alrm_do(int sig) const int buflen=1024; char buf[buflen]; int pos=0; + int write_result; #ifndef _WIN32 signal(SIGALRM, sig_alrm_do); alarm(30); @@ -182,13 +192,22 @@ sig_alrm_do(int sig) pos+=assafe_strcp2buf(" relations ", buflen-pos, buf+pos); pos+=assafe_lltoa(processed_tiles, buflen-pos, buf+pos); pos+=assafe_strcp2buf(" tiles", buflen-pos, buf+pos); - write(2,buf,pos); + write_result = write(2,buf,pos); + if (write_result == -1){ + dbg(lvl_warning, "Writing sig alrm ailed. Error-Code: %d" , errno); + } progress_time(); progress_memory(); #ifndef _WIN32 - write(2,"\r\n",2); + write_result = write(2,"\r\n",2); + if (write_result == -1){ + dbg(lvl_warning, "Writing new line in sig alrm ailed. Error-Code: %d" , errno); + } #else - write(2,"\n",1); + write_result = write(2,"\n",1); + if (write_result == -1){ + dbg(lvl_warning, "Writing new line in sig alrm ailed. Error-Code: %d" , errno); + } #endif } diff --git a/navit/maptool/tile.c b/navit/maptool/tile.c index 9d9f94145..23fd62dad 100644 --- a/navit/maptool/tile.c +++ b/navit/maptool/tile.c @@ -405,7 +405,10 @@ write_aux_tiles(struct zip_info *zip_info) assert(buffer != NULL); f=fopen(at->filename,"rb"); assert(f != NULL); - fread(buffer, at->size, 1, f); + + if (fread(buffer, at->size, 1, f) == 0){ + dbg(lvl_warning, "fread failed"); + } fclose(f); write_zipmember(zip_info, at->name, zip_get_maxnamelen(zip_info), buffer, at->size); free(buffer); diff --git a/navit/maptool/zip.c b/navit/maptool/zip.c index a4e040974..0e8543fa2 100644 --- a/navit/maptool/zip.c +++ b/navit/maptool/zip.c @@ -187,10 +187,13 @@ zip_write_index(struct zip_info *info) { int size=ftell(info->index); char *buffer; - + buffer=g_alloca(size); fseek(info->index, 0, SEEK_SET); - fread(buffer, size, 1, info->index); + + if (fread(buffer, size, 1, info->index) == 0){ + dbg(lvl_warning, "fread failed"); + } write_zipmember(info, "index", strlen("index"), buffer, size); info->zipnum++; } -- cgit v1.2.1 From e68c084253bcf74cecf346cd769ffd0ca3e1f370 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20H=C3=B6hn?= Date: Sat, 20 Jan 2018 23:57:48 +0100 Subject: fix:avoid NULL pointer in ch.c --- navit/maptool/ch.c | 1 + 1 file changed, 1 insertion(+) diff --git a/navit/maptool/ch.c b/navit/maptool/ch.c index 0979cccce..b1f7d9d01 100644 --- a/navit/maptool/ch.c +++ b/navit/maptool/ch.c @@ -207,6 +207,7 @@ ch_generate_ddsg(FILE *in, FILE *ref, FILE *idx, FILE *ddsg) if (fread(&road_id, sizeof(road_id), 1, ref) == 0){ dbg(lvl_warning, "fread failed"); + continue; } if (speed) { struct edge_hash_item *hi=g_slice_new(struct edge_hash_item); -- cgit v1.2.1 From 08d778c5df56fc426432f7d8d9721890b918ca4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20H=C3=B6hn?= Date: Sun, 21 Jan 2018 00:09:37 +0100 Subject: fix: changes in buffer.c --- navit/maptool/buffer.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/navit/maptool/buffer.c b/navit/maptool/buffer.c index be0e269c1..c1d754b40 100644 --- a/navit/maptool/buffer.c +++ b/navit/maptool/buffer.c @@ -35,7 +35,7 @@ save_buffer(char *filename, struct buffer *b, long long offset) fclose(f); } -void +int load_buffer(char *filename, struct buffer *b, long long offset, long long size) { FILE *f; @@ -54,16 +54,16 @@ load_buffer(char *filename, struct buffer *b, long long offset, long long size) } b->size=b->malloced=size; dbg_assert(b->size>0); -#if 0 - fprintf(stderr,"reading "LONGLONG_FMT" bytes from %s of "LONGLONG_FMT" bytes at "LONGLONG_FMT"\n", b->size, filename, len, offset); -#endif + fseeko(f, offset, SEEK_SET); b->base=malloc(b->size); dbg_assert(b->base != NULL); if (fread(b->base, b->size, 1, f) == 0){ dbg(lvl_warning, "fread failed"); + return false; } fclose(f); + return true; } long long -- cgit v1.2.1 From 55af47003855b853598bf7d3049265f50cfe4def Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20H=C3=B6hn?= Date: Sun, 21 Jan 2018 00:30:07 +0100 Subject: doc: added doxygen documentation to buffer.c --- navit/maptool/buffer.c | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/navit/maptool/buffer.c b/navit/maptool/buffer.c index c1d754b40..345b6af86 100644 --- a/navit/maptool/buffer.c +++ b/navit/maptool/buffer.c @@ -1,6 +1,6 @@ /** * Navit, a modular navigation system. - * Copyright (C) 2005-2011 Navit Team + * Copyright (C) 2005-2018 Navit Team * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -21,6 +21,15 @@ #include "maptool.h" #include "debug.h" +/** + * @brief Saves a buffer to a file + * + * This function saves a buffer to a file. + * + * @param filename The name of the while to where the buffer is saved to. + * @param b Buffer which is saved to file. + * @param offset + */ void save_buffer(char *filename, struct buffer *b, long long offset) { @@ -34,7 +43,15 @@ save_buffer(char *filename, struct buffer *b, long long offset) dbg_assert(fwrite(b->base, b->size, 1, f)==1); fclose(f); } - +/** + * @brief Loads a buffer from a file + * + * This function loads a buffer from a file. + * + * @param filename The name of the while to where the buffer is loaded from. + * @param b Buffer in which file is loaded. + * @param offset + */ int load_buffer(char *filename, struct buffer *b, long long offset, long long size) { @@ -65,7 +82,13 @@ load_buffer(char *filename, struct buffer *b, long long offset, long long size) fclose(f); return true; } - +/** + * @brief Determines size of buffer for file + * + * This function determines the size of the buffer required to read a file. + * + * @param filename Name of file for which the required size of the buffer is determined + */ long long sizeof_buffer(char *filename) { -- cgit v1.2.1 From 0f628fada674ce96f975e25bcebc379a77ed6b39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20H=C3=B6hn?= Date: Sun, 21 Jan 2018 00:50:31 +0100 Subject: fix: wrong use of boolean values --- navit/maptool/buffer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/navit/maptool/buffer.c b/navit/maptool/buffer.c index 345b6af86..a11b81373 100644 --- a/navit/maptool/buffer.c +++ b/navit/maptool/buffer.c @@ -77,10 +77,10 @@ load_buffer(char *filename, struct buffer *b, long long offset, long long size) dbg_assert(b->base != NULL); if (fread(b->base, b->size, 1, f) == 0){ dbg(lvl_warning, "fread failed"); - return false; + return 0; } fclose(f); - return true; + return 1; } /** * @brief Determines size of buffer for file -- cgit v1.2.1 From 09e180dde95164423e39a74d7d795eb861c681af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20H=C3=B6hn?= Date: Sun, 21 Jan 2018 01:17:42 +0100 Subject: fix: corrected header file to change of return type of load_buffer --- navit/maptool/maptool.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/navit/maptool/maptool.h b/navit/maptool/maptool.h index ce147b1a4..99d567227 100644 --- a/navit/maptool/maptool.h +++ b/navit/maptool/maptool.h @@ -177,7 +177,7 @@ struct buffer { }; void save_buffer(char *filename, struct buffer *b, long long offset); -void load_buffer(char *filename, struct buffer *b, long long offset, long long size); +int load_buffer(char *filename, struct buffer *b, long long offset, long long size); long long sizeof_buffer(char *filename); /* ch.c */ -- cgit v1.2.1 From 1f8bc199df8dae7207eb2b7b80924ede736eda6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20H=C3=B6hn?= Date: Mon, 22 Jan 2018 20:52:37 +0100 Subject: fix: added changes as suggested by @pgrandin on github --- navit/maptool/buffer.c | 2 ++ navit/maptool/maptool.c | 4 +--- navit/maptool/tile.c | 2 ++ navit/maptool/zip.c | 1 + 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/navit/maptool/buffer.c b/navit/maptool/buffer.c index a11b81373..e6f8beea0 100644 --- a/navit/maptool/buffer.c +++ b/navit/maptool/buffer.c @@ -51,6 +51,7 @@ save_buffer(char *filename, struct buffer *b, long long offset) * @param filename The name of the while to where the buffer is loaded from. * @param b Buffer in which file is loaded. * @param offset + * @return indicator if operation suceeded */ int load_buffer(char *filename, struct buffer *b, long long offset, long long size) @@ -88,6 +89,7 @@ load_buffer(char *filename, struct buffer *b, long long offset, long long size) * This function determines the size of the buffer required to read a file. * * @param filename Name of file for which the required size of the buffer is determined + * @return required size of buffer */ long long sizeof_buffer(char *filename) diff --git a/navit/maptool/maptool.c b/navit/maptool/maptool.c index 9965a9f16..21cd42e35 100644 --- a/navit/maptool/maptool.c +++ b/navit/maptool/maptool.c @@ -131,7 +131,6 @@ progress_time(void) const int buflen=20; char buf[buflen]; int pos=1; - int write_result; buf[0]=' '; #ifdef _WIN32 gettimeofday(&ts, NULL); @@ -143,8 +142,7 @@ progress_time(void) seconds%=60; pos+=assafe_strcp2buf(seconds>9?":":":0", buflen-pos, buf+pos); pos+=assafe_lltoa(seconds, buflen-pos, buf+pos); - write_result = write(2,buf,pos); - if (write_result == -1){ + if (write(2,buf,pos) == -1){ dbg(lvl_warning, "Writing progress time failed. Error-Code: %d" , errno); } } diff --git a/navit/maptool/tile.c b/navit/maptool/tile.c index 23fd62dad..237558a68 100644 --- a/navit/maptool/tile.c +++ b/navit/maptool/tile.c @@ -408,6 +408,8 @@ write_aux_tiles(struct zip_info *zip_info) if (fread(buffer, at->size, 1, f) == 0){ dbg(lvl_warning, "fread failed"); + fclose(f); + continue; } fclose(f); write_zipmember(zip_info, at->name, zip_get_maxnamelen(zip_info), buffer, at->size); diff --git a/navit/maptool/zip.c b/navit/maptool/zip.c index 0e8543fa2..497b6fd24 100644 --- a/navit/maptool/zip.c +++ b/navit/maptool/zip.c @@ -193,6 +193,7 @@ zip_write_index(struct zip_info *info) if (fread(buffer, size, 1, info->index) == 0){ dbg(lvl_warning, "fread failed"); + return; } write_zipmember(info, "index", strlen("index"), buffer, size); info->zipnum++; -- cgit v1.2.1 From 3d525ff7a53d34cdc9e84a1c617525e0b5342d54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20H=C3=B6hn?= Date: Mon, 22 Jan 2018 23:35:33 +0100 Subject: corrected files considering more comments by @pgrandin --- navit/maptool/tile.c | 15 ++++++++------- navit/maptool/zip.c | 5 +++-- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/navit/maptool/tile.c b/navit/maptool/tile.c index 237558a68..76469376c 100644 --- a/navit/maptool/tile.c +++ b/navit/maptool/tile.c @@ -409,14 +409,15 @@ write_aux_tiles(struct zip_info *zip_info) if (fread(buffer, at->size, 1, f) == 0){ dbg(lvl_warning, "fread failed"); fclose(f); - continue; } - fclose(f); - write_zipmember(zip_info, at->name, zip_get_maxnamelen(zip_info), buffer, at->size); - free(buffer); - count++; - l=g_list_next(l); - zip_add_member(zip_info); + else{ + fclose(f); + write_zipmember(zip_info, at->name, zip_get_maxnamelen(zip_info), buffer, at->size); + free(buffer); + count++; + l=g_list_next(l); + zip_add_member(zip_info); + } } return count; } diff --git a/navit/maptool/zip.c b/navit/maptool/zip.c index 497b6fd24..601d6eb67 100644 --- a/navit/maptool/zip.c +++ b/navit/maptool/zip.c @@ -193,9 +193,10 @@ zip_write_index(struct zip_info *info) if (fread(buffer, size, 1, info->index) == 0){ dbg(lvl_warning, "fread failed"); - return; } - write_zipmember(info, "index", strlen("index"), buffer, size); + else{ + write_zipmember(info, "index", strlen("index"), buffer, size); + } info->zipnum++; } -- cgit v1.2.1 From 0700a881fc413bd3ee4fb91a4a12c9227a2744e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20H=C3=B6hn?= Date: Mon, 12 Feb 2018 22:26:18 +0100 Subject: further adjustments according comments --- navit/maptool/zip.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/navit/maptool/zip.c b/navit/maptool/zip.c index 601d6eb67..ff9438786 100644 --- a/navit/maptool/zip.c +++ b/navit/maptool/zip.c @@ -182,7 +182,7 @@ write_zipmember(struct zip_info *zip_info, char *name, int filelen, char *data, free(compbuffer); } -void +int zip_write_index(struct zip_info *info) { int size=ftell(info->index); @@ -193,11 +193,13 @@ zip_write_index(struct zip_info *info) if (fread(buffer, size, 1, info->index) == 0){ dbg(lvl_warning, "fread failed"); + return 1; } else{ write_zipmember(info, "index", strlen("index"), buffer, size); } info->zipnum++; + return 0; } static void -- cgit v1.2.1 From 4f5c0caeb6810745dfb8ebb897cf8634fe7bc5c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20H=C3=B6hn?= Date: Mon, 12 Feb 2018 22:52:15 +0100 Subject: correct header file considering earlier changes --- navit/maptool/maptool.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/navit/maptool/maptool.h b/navit/maptool/maptool.h index 99d567227..edb2a77ef 100644 --- a/navit/maptool/maptool.h +++ b/navit/maptool/maptool.h @@ -398,7 +398,7 @@ void index_submap_add(struct tile_info *info, struct tile_head *th); /* zip.c */ void write_zipmember(struct zip_info *zip_info, char *name, int filelen, char *data, int data_size); -void zip_write_index(struct zip_info *info); +int zip_write_index(struct zip_info *info); int zip_write_directory(struct zip_info *info); struct zip_info *zip_new(void); void zip_set_zip64(struct zip_info *info, int on); -- cgit v1.2.1