chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c50e4f9
)
util: modernize readlink_malloc() a bit
author
Lennart Poettering
<lennart@poettering.net>
Tue, 11 Feb 2014 15:45:35 +0000
(16:45 +0100)
committer
Lennart Poettering
<lennart@poettering.net>
Tue, 11 Feb 2014 16:16:08 +0000
(17:16 +0100)
src/shared/util.c
patch
|
blob
|
history
diff --git
a/src/shared/util.c
b/src/shared/util.c
index 21edd3ac2f38ab47e5c3453e626f4171ba557d72..9be11f5605c829fa7016bffd07fe36e88ac1e6dc 100644
(file)
--- a/
src/shared/util.c
+++ b/
src/shared/util.c
@@
-761,28
+761,31
@@
char *strappend(const char *s, const char *suffix) {
return strnappend(s, suffix, suffix ? strlen(suffix) : 0);
}
return strnappend(s, suffix, suffix ? strlen(suffix) : 0);
}
-int readlink_malloc(const char *p, char **r) {
+int readlink_malloc(const char *p, char **r
et
) {
size_t l = 100;
size_t l = 100;
+ int r;
assert(p);
assert(p);
- assert(r);
+ assert(r
et
);
for (;;) {
char *c;
ssize_t n;
for (;;) {
char *c;
ssize_t n;
- if (!(c = new(char, l)))
+ c = new(char, l);
+ if (!c)
return -ENOMEM;
return -ENOMEM;
- if ((n = readlink(p, c, l-1)) < 0) {
- int ret = -errno;
+ n = readlink(p, c, l-1);
+ if (n < 0) {
+ r = -errno;
free(c);
free(c);
- return r
et
;
+ return r;
}
if ((size_t) n < l-1) {
c[n] = 0;
}
if ((size_t) n < l-1) {
c[n] = 0;
- *r = c;
+ *r
et
= c;
return 0;
}
return 0;
}