chiark / gitweb /
Properly check for overflow in offsets
[elogind.git] / src / shared / fileio.c
index 48dd44239fa6dc9930072b808eb2e140d3a7ffb9..ad068bf30da6c4687b80393a6c387ca388ee74ea 100644 (file)
 #include "util.h"
 #include "strv.h"
 
-int write_string_file(const char *fn, const char *line) {
-        _cleanup_fclose_ FILE *f = NULL;
-
-        assert(fn);
-        assert(line);
-
-        f = fopen(fn, "we");
-        if (!f)
-                return -errno;
 
+int write_string_to_file(FILE *f, const char *line) {
         errno = 0;
         fputs(line, f);
         if (!endswith(line, "\n"))
@@ -47,6 +39,19 @@ int write_string_file(const char *fn, const char *line) {
         return 0;
 }
 
+int write_string_file(const char *fn, const char *line) {
+        _cleanup_fclose_ FILE *f = NULL;
+
+        assert(fn);
+        assert(line);
+
+        f = fopen(fn, "we");
+        if (!f)
+                return -errno;
+
+        return write_string_to_file(f, line);
+}
+
 int write_string_file_atomic(const char *fn, const char *line) {
         _cleanup_fclose_ FILE *f = NULL;
         _cleanup_free_ char *p = NULL;