X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=src%2Fstring%2Fstrerror_r.c;fp=src%2Fstring%2Fstrerror_r.c;h=907dcf079a9a39c977ef52523c4fb564676f5217;hp=6fdd4ce2c844530222a974d3b543a002bec4e04c;hb=f313a1622448de578ab0b11a881f44a02c9082e6;hpb=839bff64a17c1ecaed60feefd9b63554ca9cbad6 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; }