/* Copy the string to the buffer */
 
                new_buf = return_desc->buffer.pointer;
-               strncpy((char *)new_buf, (char *)obj_desc->string.pointer,
-                       obj_desc->string.length);
+               memcpy((char *)new_buf, (char *)obj_desc->string.pointer,
+                      obj_desc->string.length);
                break;
 
        default:
 
 
        memset(&header, 0, sizeof(struct acpi_table_header));
        ACPI_COPY_NAMESEG(header.signature, signature);
-       strncpy(header.oem_id, oem_id, ACPI_OEM_ID_SIZE);
-       strncpy(header.oem_table_id, oem_table_id, ACPI_OEM_TABLE_ID_SIZE);
+       memcpy(header.oem_id, oem_id, ACPI_OEM_ID_SIZE);
+       memcpy(header.oem_table_id, oem_table_id, ACPI_OEM_TABLE_ID_SIZE);
 
        /* Search for the table */
 
 
 {
        /* Always terminate destination string */
 
-       strncpy(dest, source, dest_size);
+       memcpy(dest, source, dest_size);
        dest[dest_size - 1] = 0;
 }
 
 
 #define ACPI_COPY_NAMESEG(dest,src)     (*ACPI_CAST_PTR (u32, (dest)) = *ACPI_CAST_PTR (u32, (src)))
 #else
 #define ACPI_COMPARE_NAMESEG(a,b)       (!strncmp (ACPI_CAST_PTR (char, (a)), ACPI_CAST_PTR (char, (b)), ACPI_NAMESEG_SIZE))
-#define ACPI_COPY_NAMESEG(dest,src)     (strncpy (ACPI_CAST_PTR (char, (dest)), ACPI_CAST_PTR (char, (src)), ACPI_NAMESEG_SIZE))
+#define ACPI_COPY_NAMESEG(dest,src)     (memcpy (ACPI_CAST_PTR (char, (dest)), ACPI_CAST_PTR (char, (src)), ACPI_NAMESEG_SIZE))
 #endif
 
 /* Support for the special RSDP signature (8 characters) */