chiark / gitweb /
systemd-run: support -t mode when combined with -M
[elogind.git] / src / shared / util.c
index 06b6077843249ecd1b287aa4b50c097fd0433b49..6695a85a1c904af9be5e03ef6af90de1d5025f68 100644 (file)
@@ -7433,3 +7433,27 @@ int sethostname_idempotent(const char *s) {
 
         return 1;
 }
+
+int ptsname_malloc(int fd, char **ret) {
+        size_t l = 100;
+
+        for (;;) {
+                char *c;
+
+                c = new(char, l);
+                if (!c)
+                        return -ENOMEM;
+
+                if (ptsname_r(fd, c, l) == 0) {
+                        *ret = c;
+                        return 0;
+                }
+                if (errno != ERANGE) {
+                        free(c);
+                        return -errno;
+                }
+
+                free(c);
+                l *= 2;
+        }
+}