dotpos = strrchr((char *)XSTRING_DATA(libname),'.');
if ( dotpos == NULL || strncmp(dotpos, EXT, sizeof(EXT))) {
ssize_t liblen = XSTRING_LENGTH(libname);
- ssize_t soname_len = liblen + sizeof(EXT);
- soname = xmalloc( soname_len + 1);
- strncpy(soname, (char *)XSTRING_DATA(libname), liblen+1);
- strncat(soname, EXT, sizeof(EXT)+1);
+ ssize_t soname_len = liblen + sizeof(EXT) + 1;
+ soname = xmalloc( soname_len);
+ xstrncpy(soname, (char *)XSTRING_DATA(libname), soname_len);
+ xstrncpy(soname+liblen, EXT, soname_len-liblen);
}
if ( soname == NULL ) {
*bp++ = '*';
*bp++ = (extent_start_open_p(anc) ? '(' : '[');
if (extent_detached_p(ext))
- strncpy(bp, "detached", sizeof(buf)-1);
+ xstrncpy(bp, "detached", sizeof(buf)-6);
else {
- sz=snprintf(bp, sizeof(buf)-2, "%ld, %ld",
+ sz=snprintf(bp, sizeof(buf)-6, "%ld, %ld",
XINT(Fextent_start_position(obj)),
XINT(Fextent_end_position(obj)));
- assert(sz>=0 && (size_t)sz<(sizeof(buf)-2));
+ assert(sz>=0 && (size_t)sz<(sizeof(buf)-6));
}
bp += strlen(bp);
*bp++ = (extent_end_open_p(anc) ? ')' : ']');
pb.type = PROP_STRING;
pb.data.p_string.str =
xnew_atomic_array(Bufbyte, len);
- strncpy((char *)pb.data.p_string.str,
+ xstrncpy((char *)pb.data.p_string.str,
(char *)pos, len);
pb.data.p_string.len = len;