summaryrefslogtreecommitdiff
path: root/CCache/debian/patches/12_cachesize_permissions.diff
diff options
context:
space:
mode:
Diffstat (limited to 'CCache/debian/patches/12_cachesize_permissions.diff')
-rw-r--r--CCache/debian/patches/12_cachesize_permissions.diff83
1 files changed, 83 insertions, 0 deletions
diff --git a/CCache/debian/patches/12_cachesize_permissions.diff b/CCache/debian/patches/12_cachesize_permissions.diff
new file mode 100644
index 0000000..28801b7
--- /dev/null
+++ b/CCache/debian/patches/12_cachesize_permissions.diff
@@ -0,0 +1,83 @@
+--- 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);