X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fstring%2Fstrerror_r.c;fp=src%2Fstring%2Fstrerror_r.c;h=907dcf079a9a39c977ef52523c4fb564676f5217;hb=f313a1622448de578ab0b11a881f44a02c9082e6;hp=6fdd4ce2c844530222a974d3b543a002bec4e04c;hpb=839bff64a17c1ecaed60feefd9b63554ca9cbad6;p=musl diff --git a/src/string/strerror_r.c b/src/string/strerror_r.c index 6fdd4ce2..907dcf07 100644 --- a/src/string/strerror_r.c +++ b/src/string/strerror_r.c @@ -4,8 +4,14 @@ int strerror_r(int err, char *buf, size_t buflen) { char *msg = strerror(err); - if (strlen(msg) >= buflen) + size_t l = strlen(msg); + if (l >= buflen) { + if (buflen) { + memcpy(buf, msg, buflen-1); + buf[buflen-1] = 0; + } return ERANGE; - strcpy(buf, msg); + } + memcpy(buf, msg, l+1); return 0; }