| --- stats.c (révision 8804) |
| +++ stats.c (copie de travail) |
| @@ -286,7 +286,7 @@ |
| |
| |
| /* set the per directory limits */ |
| -void stats_set_limits(long maxfiles, long maxsize) |
| +int stats_set_limits(long maxfiles, long maxsize) |
| { |
| int dir; |
| unsigned counters[STATS_END]; |
| @@ -298,7 +298,9 @@ |
| maxsize /= 16; |
| } |
| |
| - create_dir(cache_dir); |
| + if (create_dir(cache_dir) != 0) { |
| + return 1; |
| + } |
| |
| /* set the limits in each directory */ |
| for (dir=0;dir<=0xF;dir++) { |
| @@ -306,7 +308,9 @@ |
| int fd; |
| |
| x_asprintf(&cdir, "%s/%1x", cache_dir, dir); |
| - create_dir(cdir); |
| + if (create_dir(cdir) != 0) { |
| + return 1; |
| + } |
| x_asprintf(&fname, "%s/stats", cdir); |
| free(cdir); |
| |
| @@ -326,6 +330,8 @@ |
| } |
| free(fname); |
| } |
| + |
| + return 0; |
| } |
| |
| /* set the per directory sizes */ |
| --- ccache.c (révision 8804) |
| +++ ccache.c (copie de travail) |
| @@ -935,15 +934,23 @@ |
| case 'F': |
| check_cache_dir(); |
| v = atoi(optarg); |
| - stats_set_limits(v, -1); |
| - printf("Set cache file limit to %u\n", (unsigned)v); |
| + if (stats_set_limits(v, -1) == 0) { |
| + printf("Set cache file limit to %u\n", (unsigned)v); |
| + } else { |
| + printf("Could not set cache file limit.\n"); |
| + exit(1); |
| + } |
| break; |
| |
| case 'M': |
| check_cache_dir(); |
| v = value_units(optarg); |
| - stats_set_limits(-1, v); |
| - printf("Set cache size limit to %uk\n", (unsigned)v); |
| + if (stats_set_limits(-1, v) == 0) { |
| + printf("Set cache size limit to %uk\n", (unsigned)v); |
| + } else { |
| + printf("Could not set cache size limit.\n"); |
| + exit(1); |
| + } |
| break; |
| |
| default: |
| --- ccache.h (révision 8804) |
| +++ ccache.h (copie de travail) |
| @@ -101,7 +101,7 @@ |
| void stats_summary(void); |
| void stats_tocache(size_t size); |
| void stats_read(const char *stats_file, unsigned counters[STATS_END]); |
| -void stats_set_limits(long maxfiles, long maxsize); |
| +int stats_set_limits(long maxfiles, long maxsize); |
| size_t value_units(const char *s); |
| void display_size(unsigned v); |
| void stats_set_sizes(const char *dir, size_t num_files, size_t total_size); |