Quellcode durchsuchen

Note a non-bug in read_file_to_str as used. If we start to rely on it behaving differently, we need to change how it behaves. [Noticed by Chris Palmer]

svn:r3655
Nick Mathewson vor 20 Jahren
Ursprung
Commit
e8da6b26b6
1 geänderte Dateien mit 9 neuen und 2 gelöschten Zeilen
  1. 9 2
      src/common/util.c

+ 9 - 2
src/common/util.c

@@ -880,8 +880,15 @@ int write_bytes_to_file(const char *fname, const char *str, size_t len,
   return -1;
   return -1;
 }
 }
 
 
-/** Read the contents of <b>filename</b> into a newly allocated string; return the
- * string on success or NULL on failure.
+/** Read the contents of <b>filename</b> into a newly allocated
+ * string; return the string on success or NULL on failure.
+ */
+/*
+ * This function <em>may</em> return an erroneous result if the file
+ * is modified while it is running, but must not crash or overflow.
+ * Right now, the error case occurs when the file length grows between
+ * the call to stat and the call to read_all: the resulting string will
+ * be truncated.
  */
  */
 char *read_file_to_str(const char *filename, int bin) {
 char *read_file_to_str(const char *filename, int bin) {
   int fd; /* router file */
   int fd; /* router file */