Index: lamix/kernel/fork.c =================================================================== RCS file: /res/impulse/users/map/cvsroot/ml-rsim/lamix/kernel/fork.c,v retrieving revision 1.2 retrieving revision 1.3 diff --context -r1.2 -r1.3 *** lamix/kernel/fork.c 2002/10/25 20:24:33 1.2 --- lamix/kernel/fork.c 2003/05/22 21:55:15 1.3 *************** *** 72,78 **** /* Return parent ID in %o0 and 0x1 in %o1 to child */ /*===========================================================================*/ ! int sys_fork(int a0, int a1, int a2, int a3, int a4, char *regs0) { process_t *p0, *p1; char *regs1; --- 72,78 ---- /* Return parent ID in %o0 and 0x1 in %o1 to child */ /*===========================================================================*/ ! long long sys_fork(int a0, int a1, int a2, int a3, int a4, char *regs0) { process_t *p0, *p1; char *regs1; *************** *** 83,89 **** #endif if (current_procs >= MAX_PROCS) ! return(-EAGAIN); p0 = CURRENT_PROCESS; --- 83,89 ---- #endif if (current_procs >= MAX_PROCS) ! return((long long)-EAGAIN << 32 | (long long)0); p0 = CURRENT_PROCESS; *************** *** 122,127 **** kprint0(" ... Fork Done"); #endif ! asm("mov %g0, %i1"); ! return(p1->pid); } --- 122,126 ---- kprint0(" ... Fork Done"); #endif ! return((long long)p1->pid << 32 | (long long)0); } Index: src/Caches/cache_help.c =================================================================== RCS file: /res/impulse/users/map/cvsroot/ml-rsim/src/Caches/cache_help.c,v retrieving revision 1.2 retrieving revision 1.3 diff --context -r1.2 -r1.3 *** src/Caches/cache_help.c 2002/10/25 20:25:07 1.2 --- src/Caches/cache_help.c 2003/05/22 21:55:20 1.3 *************** *** 147,154 **** if (lq == NULL) YS__errmsg(0, "Malloc failed at %s:%i", __FILE__, __LINE__); ! lq->head = NULL; ! lq->tail = NULL; lq->total = max_size; lq->size = 0; --- 147,154 ---- if (lq == NULL) YS__errmsg(0, "Malloc failed at %s:%i", __FILE__, __LINE__); ! lq->head = 0; ! lq->tail = 0; lq->total = max_size; lq->size = 0; Index: src/IO/disk_mech.c =================================================================== RCS file: /res/impulse/users/map/cvsroot/ml-rsim/src/IO/disk_mech.c,v retrieving revision 1.2 retrieving revision 1.3 diff --context -r1.2 -r1.3 *** src/IO/disk_mech.c 2002/10/25 20:25:11 1.2 --- src/IO/disk_mech.c 2003/05/22 21:55:21 1.3 *************** *** 317,324 **** { int head, cylinder; ! head = DISK_sector_to_head(pdisk, sector + length); ! cylinder = DISK_sector_to_cylinder(pdisk, sector + length); if ((pdisk->current_head == head) && (pdisk->current_cylinder == cylinder)) return((double)(length * 60000.0 / (double)(pdisk->rpm * pdisk->sectors))); --- 317,324 ---- { int head, cylinder; ! head = DISK_sector_to_head(pdisk, sector + length - 1); ! cylinder = DISK_sector_to_cylinder(pdisk, sector + length - 1); if ((pdisk->current_head == head) && (pdisk->current_cylinder == cylinder)) return((double)(length * 60000.0 / (double)(pdisk->rpm * pdisk->sectors))); Index: src/IO/disk_storage.c =================================================================== RCS file: /res/impulse/users/map/cvsroot/ml-rsim/src/IO/disk_storage.c,v retrieving revision 1.4 retrieving revision 1.5 diff --context -r1.4 -r1.5 *** src/IO/disk_storage.c 2003/04/15 15:20:35 1.4 --- src/IO/disk_storage.c 2003/05/22 21:55:21 1.5 *************** *** 121,126 **** --- 121,131 ---- pdisk->scsi_me->scsi_bus->bus_id, pdisk->scsi_me->dev_id); + YS__logmsg(pdisk->scsi_me->scsi_bus->node_id, + "\nLoading persistent storage for disk %i, SCSI bus %i:\n %s\n %s\n", + pdisk->scsi_me->dev_id, pdisk->scsi_me->scsi_bus->bus_id, + pdisk->storage.index_file_name, pdisk->storage.data_file_name); + /* open data file, create if it doesn't exist ---------------------------*/ file = open(pdisk->storage.data_file_name, O_RDWR, 0x1A4); Index: src/IO/scsi_disk.c =================================================================== RCS file: /res/impulse/users/map/cvsroot/ml-rsim/src/IO/scsi_disk.c,v retrieving revision 1.3 retrieving revision 1.4 diff --context -r1.3 -r1.4 *** src/IO/scsi_disk.c 2002/10/25 20:25:12 1.3 --- src/IO/scsi_disk.c 2003/05/22 21:55:21 1.4 *************** *** 907,919 **** pdisk->scsi_me->dev_id, DISK_estimate_access_time(pdisk, req->start_block+req->current_length, ! req->length - req->current_length-1), (double)((req->length - req->transferred) * SCSI_BLOCK_SIZE) / (double)(SCSI_WIDTH * SCSI_FREQUENCY * 1000.0)); #endif if (DISK_estimate_access_time(pdisk, req->start_block + req->current_length, ! req->length - req->current_length-1) < (double)((req->length - req->transferred) * SCSI_BLOCK_SIZE) / (double)(SCSI_WIDTH * SCSI_FREQUENCY * 1000.0)) { --- 907,919 ---- pdisk->scsi_me->dev_id, DISK_estimate_access_time(pdisk, req->start_block+req->current_length, ! req->length - req->current_length), (double)((req->length - req->transferred) * SCSI_BLOCK_SIZE) / (double)(SCSI_WIDTH * SCSI_FREQUENCY * 1000.0)); #endif if (DISK_estimate_access_time(pdisk, req->start_block + req->current_length, ! req->length - req->current_length) < (double)((req->length - req->transferred) * SCSI_BLOCK_SIZE) / (double)(SCSI_WIDTH * SCSI_FREQUENCY * 1000.0)) { *************** *** 1170,1178 **** pdisk->scsi_me->dev_id, req->current_length, req->length, DISK_estimate_access_time(pdisk, req->start_block+req->current_length, ! req->length - req->current_length-1), DISK_estimate_access_time(pdisk, req->start_block+req->current_length, ! req->length - req->current_length-1) * pdisk->ticks_per_ms, YS__Simtime + rint(DISK_rotation_time(pdisk, 1) * pdisk->ticks_per_ms)); #endif --- 1170,1178 ---- pdisk->scsi_me->dev_id, req->current_length, req->length, DISK_estimate_access_time(pdisk, req->start_block+req->current_length, ! req->length - req->current_length), DISK_estimate_access_time(pdisk, req->start_block+req->current_length, ! req->length - req->current_length) * pdisk->ticks_per_ms, YS__Simtime + rint(DISK_rotation_time(pdisk, 1) * pdisk->ticks_per_ms)); #endif *************** *** 1834,1840 **** YS__statmsg(nid, " Buffer Full Ratio: %.2f; Buffer Empty Ratio: %.2f\n", pdisk->buffer_full_ratio, pdisk->buffer_empty_ratio); ! YS__statmsg(nid, "\nSCSI Disk %i Statistics\n", pdisk->dev_id); --- 1834,1842 ---- YS__statmsg(nid, " Buffer Full Ratio: %.2f; Buffer Empty Ratio: %.2f\n", pdisk->buffer_full_ratio, pdisk->buffer_empty_ratio); ! YS__statmsg(nid, ! " Persistent disk storage:\n %s\n %s\n", ! pdisk->storage.index_file_name, pdisk->storage.data_file_name); YS__statmsg(nid, "\nSCSI Disk %i Statistics\n", pdisk->dev_id); Index: src/Memory/mmc_init.c =================================================================== RCS file: /res/impulse/users/map/cvsroot/ml-rsim/src/Memory/mmc_init.c,v retrieving revision 1.6 retrieving revision 1.7 diff --context -r1.6 -r1.7 *** src/Memory/mmc_init.c 2002/11/25 17:13:40 1.6 --- src/Memory/mmc_init.c 2003/05/22 21:55:23 1.7 *************** *** 153,158 **** --- 153,159 ---- /* parameter name has been abbreviated, old name is still accepted */ /* also accepts old binary values (0/1) in addition to new textual values */ + buf[0] = 0; get_parameter("MMC_sim", buf, PARAM_STRING); if (strcmp(buf, "0") == 0) mparam.sim = MMC_SIM_FIXED; Index: src/Processor/filedesc.cc =================================================================== RCS file: /res/impulse/users/map/cvsroot/ml-rsim/src/Processor/filedesc.cc,v retrieving revision 1.2 retrieving revision 1.3 diff --context -r1.2 -r1.3 *** src/Processor/filedesc.cc 2002/10/25 20:25:16 1.2 --- src/Processor/filedesc.cc 2003/05/22 21:55:24 1.3 *************** *** 102,108 **** YS__errmsg(0, "Malloc failed in %s:%i", __FILE__, __LINE__); for (int n = 0; n < fd_max; n++) ! FDs[n].name[0] = '\0'; } --- 102,108 ---- YS__errmsg(0, "Malloc failed in %s:%i", __FILE__, __LINE__); for (int n = 0; n < fd_max; n++) ! memset(FDs[n].name, 0, sizeof(FDs[n].name)); } *************** *** 130,136 **** YS__errmsg(0, "Realloc failed in %s:%i", __FILE__, __LINE__); for (int n = fd_free; n < fd_max; n++) ! FDs[n].name[0] = '\0'; } if (flags & O_CREAT) --- 130,136 ---- YS__errmsg(0, "Realloc failed in %s:%i", __FILE__, __LINE__); for (int n = fd_free; n < fd_max; n++) ! memset(FDs[n].name, 0, sizeof(FDs[n].name)); } if (flags & O_CREAT) *************** *** 164,170 **** while (fd < 0); close(fd); } ! if (realpath(name, FDs[fd_free].name) == NULL) return(-1); --- 164,170 ---- while (fd < 0); close(fd); } ! if (realpath(name, FDs[fd_free].name) == NULL) return(-1); Index: src/Processor/tagcvt.h =================================================================== RCS file: /res/impulse/users/map/cvsroot/ml-rsim/src/Processor/tagcvt.h,v retrieving revision 1.3 retrieving revision 1.4 diff --context -r1.3 -r1.4 *** src/Processor/tagcvt.h 2003/01/22 20:45:05 1.3 --- src/Processor/tagcvt.h 2003/05/16 22:30:20 1.4 *************** *** 88,94 **** inline instance *GetHeadInst (ProcState *); inline instance *GetTailInst (ProcState *); inline instance *TagCvtTail (long long, ProcState *); - inline int UpdateTagcount (long long, ProcState *); inline int UpdateTagtail (long long, ProcState *); inline int UpdateTaghead (long long, ProcState *); inline void FlushTagConverter (long long, ProcState *); --- 88,93 ---- Index: src/Processor/tagcvt.hh =================================================================== RCS file: /res/impulse/users/map/cvsroot/ml-rsim/src/Processor/tagcvt.hh,v retrieving revision 1.3 retrieving revision 1.4 diff --context -r1.3 -r1.4 *** src/Processor/tagcvt.hh 2003/01/22 20:45:05 1.3 --- src/Processor/tagcvt.hh 2003/05/16 22:30:20 1.4 *************** *** 92,129 **** /*************************************************************************/ - /* GetTagcount: See the counter at some specific element in the tag */ - /* converter. (used in graduate to make sure that */ - /* both active list entries for an instruction have passed */ - /* through, etc.) */ - /*************************************************************************/ - inline int GetTagcount(long long tag, ProcState * proc) - { - TagtoInst *tmpptr; - - if (proc->tag_cvt.Search(tag, tmpptr)) - return tmpptr->count; - else - return -1; - } - - - /*************************************************************************/ - /* UpdateTagcount: Increment the counter for some element in the tag */ - /* converter */ - /*************************************************************************/ - inline int UpdateTagcount(long long tag, ProcState * proc) - { - TagtoInst *tmpptr; - - if (proc->tag_cvt.Search(tag, tmpptr)) - return ++tmpptr->count; - else - return -1; - } - - - /*************************************************************************/ /* UpdateTaghead: Increment the counter for the head element of the tag */ /* converter */ /*************************************************************************/ --- 92,97 ---- Index: src/Processor/tlb.cc =================================================================== RCS file: /res/impulse/users/map/cvsroot/ml-rsim/src/Processor/tlb.cc,v retrieving revision 1.8 retrieving revision 1.9 diff --context -r1.8 -r1.9 *** src/Processor/tlb.cc 2003/01/22 20:45:05 1.8 --- src/Processor/tlb.cc 2003/05/22 21:55:25 1.9 *************** *** 301,306 **** --- 301,308 ---- return(invalid); } + + return(0); } Index: src/Processor/traps.cc =================================================================== RCS file: /res/impulse/users/map/cvsroot/ml-rsim/src/Processor/traps.cc,v retrieving revision 1.10 retrieving revision 1.11 diff --context -r1.10 -r1.11 *** src/Processor/traps.cc 2003/03/19 19:06:21 1.10 --- src/Processor/traps.cc 2003/05/22 21:55:25 1.11 *************** *** 688,694 **** pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; ! for (int i = 0; i < sizeof(buffer); i++) { pa = (char *)GetMap(inst, proc); buffer[i] = *pa; --- 688,695 ---- pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; ! memset(buffer, 0, sizeof(buffer)); ! for (int i = 0; i < sizeof(buffer)-1; i++) { pa = (char *)GetMap(inst, proc); buffer[i] = *pa; *************** *** 873,879 **** pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; ! for (int i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); --- 874,881 ---- pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; ! ! memset(buffer, 0, sizeof(buffer)); for (int i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); *************** *** 883,890 **** inst->addr++; } - buffer[PATH_MAX-1] = '\0'; - pr = proc->intmapper[arch_to_log(proc, proc->cwp, 10)]; mode = proc->phy_int_reg_file[pr]; --- 885,890 ---- *************** *** 928,934 **** pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; ! for (int i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); --- 928,935 ---- pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; ! ! memset(buffer, 0, sizeof(buffer)); for (int i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); *************** *** 938,945 **** inst->addr++; } - buffer[PATH_MAX-1] = '\0'; - pr = proc->intmapper[arch_to_log(proc, proc->cwp, 10)]; oflag = proc->phy_int_reg_file[pr]; --- 939,944 ---- *************** *** 1275,1280 **** --- 1274,1280 ---- pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; + memset(path, 0, sizeof(path)); for (i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); *************** *** 1283,1289 **** break; inst->addr++; } - path[PATH_MAX-1] = '\0'; pr = proc->intmapper[arch_to_log(proc, proc->cwp, 11)]; length = proc->phy_int_reg_file[pr]; --- 1283,1288 ---- *************** *** 1373,1379 **** pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; ! for (int i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); --- 1372,1379 ---- pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; ! ! memset(buffer, 0, sizeof(buffer)); for (int i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); *************** *** 1383,1390 **** inst->addr++; } - buffer[PATH_MAX-1] = '\0'; - return_value = 0; if (fd != -1) return_value = FD_fchdir(fd); --- 1383,1388 ---- *************** *** 1425,1431 **** pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; ! for (int i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); --- 1423,1430 ---- pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; ! ! memset(buffer, 0, sizeof(buffer)); for (int i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); *************** *** 1434,1441 **** break; inst->addr++; } - - buffer[PATH_MAX-1] = '\0'; pr = proc->intmapper[arch_to_log(proc, proc->cwp, 10)]; mode = proc->phy_int_reg_file[pr]; --- 1433,1438 ---- *************** *** 1619,1625 **** int return_value = -1; int lreturn_register; int return_register; ! char *buf, *pa; struct solaris_flock sfl; struct solaris_flock64 sfl64; long long l_start; --- 1616,1622 ---- int return_value = -1; int lreturn_register; int return_register; ! char *buf = NULL, *pa; struct solaris_flock sfl; struct solaris_flock64 sfl64; long long l_start; *************** *** 1655,1661 **** YS__errmsg(proc->proc_id / ARCH_cpus, "SimFcntl: Malloc Failed: %s\n", YS__strerror(errno)); ! memset(buf, 0, sizeof(struct flock)); inst->addr = arg; for (int i = 0; i < sizeof(struct solaris_flock); i++) --- 1652,1658 ---- YS__errmsg(proc->proc_id / ARCH_cpus, "SimFcntl: Malloc Failed: %s\n", YS__strerror(errno)); ! memset(buf, 0, sizeof(struct solaris_flock)); inst->addr = arg; for (int i = 0; i < sizeof(struct solaris_flock); i++) *************** *** 1683,1689 **** YS__errmsg(proc->proc_id / ARCH_cpus, "SimFcntl: Malloc Failed: %s\n", YS__strerror(errno)); ! memset(buf, 0, sizeof(struct flock64)); inst->addr = arg; for (int i = 0; i < sizeof(struct solaris_flock64); i++) --- 1680,1686 ---- YS__errmsg(proc->proc_id / ARCH_cpus, "SimFcntl: Malloc Failed: %s\n", YS__strerror(errno)); ! memset(buf, 0, sizeof(struct solaris_flock64)); inst->addr = arg; for (int i = 0; i < sizeof(struct solaris_flock64); i++) *************** *** 1716,1722 **** return_value = errno * -1; proc->phy_int_reg_file[return_register] = ! proc->log_int_reg_file[lreturn_register] = return_value; } --- 1713,1722 ---- return_value = errno * -1; proc->phy_int_reg_file[return_register] = ! proc->log_int_reg_file[lreturn_register] = return_value; ! ! if (buf) ! free(buf); } *************** *** 1795,1800 **** --- 1795,1801 ---- if (return_value < 0) return_value = errno * -1; + memset(&solbuf, 0, sizeof(solbuf)); solbuf.st_dev = endian_swap((unsigned int)sbuf.st_dev); solbuf.st_ino = endian_swap((long long)sbuf.st_ino); solbuf.st_mode = endian_swap(sbuf.st_mode); *************** *** 1871,1877 **** pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; base = proc->phy_int_reg_file[pr]; inst->addr = base; ! for (i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); --- 1872,1879 ---- pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; base = proc->phy_int_reg_file[pr]; inst->addr = base; ! ! memset(buffer, 0, sizeof(buffer)); for (i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); *************** *** 1880,1887 **** break; inst->addr++; } - buffer[PATH_MAX-1] = '\0'; - pr = proc->intmapper[arch_to_log(proc, proc->cwp, 10)]; base = proc->phy_int_reg_file[pr]; --- 1882,1887 ---- *************** *** 1893,1899 **** return_value = lstat64(buffer, &sbuf); if (return_value < 0) return_value = errno * -1; ! solbuf.st_dev = endian_swap((unsigned int)sbuf.st_dev); solbuf.st_ino = endian_swap((long long)sbuf.st_ino); solbuf.st_mode = endian_swap(sbuf.st_mode); --- 1893,1900 ---- return_value = lstat64(buffer, &sbuf); if (return_value < 0) return_value = errno * -1; ! ! memset(&solbuf, 0, sizeof(solbuf)); solbuf.st_dev = endian_swap((unsigned int)sbuf.st_dev); solbuf.st_ino = endian_swap((long long)sbuf.st_ino); solbuf.st_mode = endian_swap(sbuf.st_mode); *************** *** 1967,1973 **** pr = proc->intmapper[arch_to_log(proc, proc->cwp, 8)]; base = proc->phy_int_reg_file[pr]; inst->addr = base; ! for (i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); --- 1968,1975 ---- pr = proc->intmapper[arch_to_log(proc, proc->cwp, 8)]; base = proc->phy_int_reg_file[pr]; inst->addr = base; ! ! memset(buffer, 0, sizeof(buffer)); for (i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); *************** *** 1977,1984 **** inst->addr++; } - buffer[PATH_MAX-1] = '\0'; - pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; base = proc->phy_int_reg_file[pr]; --- 1979,1984 ---- *************** *** 1986,1992 **** if (return_value < 0) return_value = errno * -1; ! solbuf.st_dev = endian_swap((unsigned int)sbuf.st_dev); solbuf.st_ino = endian_swap((long long)sbuf.st_ino); solbuf.st_mode = endian_swap(sbuf.st_mode); --- 1986,1993 ---- if (return_value < 0) return_value = errno * -1; ! ! memset(&solbuf, 0, sizeof(solbuf)); solbuf.st_dev = endian_swap((unsigned int)sbuf.st_dev); solbuf.st_ino = endian_swap((long long)sbuf.st_ino); solbuf.st_mode = endian_swap(sbuf.st_mode); *************** *** 2053,2059 **** pr = proc->intmapper[arch_to_log(proc, proc->cwp, 8)]; inst->addr = proc->phy_int_reg_file[pr]; ! for (int i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); --- 2054,2061 ---- pr = proc->intmapper[arch_to_log(proc, proc->cwp, 8)]; inst->addr = proc->phy_int_reg_file[pr]; ! ! memset(buffer, 0, sizeof(buffer)); for (int i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); *************** *** 2062,2069 **** break; inst->addr++; } - - buffer[PATH_MAX-1] = '\0'; pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; mode = proc->phy_int_reg_file[pr]; --- 2064,2069 ---- *************** *** 2140,2146 **** pr = proc->intmapper[arch_to_log(proc, proc->cwp, 8)]; inst->addr = proc->phy_int_reg_file[pr]; ! for (int i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); --- 2140,2147 ---- pr = proc->intmapper[arch_to_log(proc, proc->cwp, 8)]; inst->addr = proc->phy_int_reg_file[pr]; ! ! memset(buffer, 0, sizeof(buffer)); for (int i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); *************** *** 2150,2157 **** inst->addr++; } - buffer[PATH_MAX-1] = '\0'; - pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; uid = proc->phy_int_reg_file[pr]; --- 2151,2156 ---- *************** *** 2233,2239 **** pr = proc->intmapper[arch_to_log(proc, proc->cwp, 8)]; inst->addr = proc->phy_int_reg_file[pr]; ! for (int i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); --- 2232,2239 ---- pr = proc->intmapper[arch_to_log(proc, proc->cwp, 8)]; inst->addr = proc->phy_int_reg_file[pr]; ! ! memset(buffer, 0, sizeof(buffer)); for (int i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); *************** *** 2243,2250 **** inst->addr++; } - buffer[PATH_MAX-1] = '\0'; - pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; uid = proc->phy_int_reg_file[pr]; --- 2243,2248 ---- *************** *** 2283,2288 **** --- 2281,2287 ---- pr = proc->intmapper[arch_to_log(proc, proc->cwp, 8)]; inst->addr = proc->phy_int_reg_file[pr]; + memset(oldpath, 0, sizeof(oldpath)); for (i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); *************** *** 2291,2300 **** break; inst->addr++; } - oldpath[PATH_MAX-1] = '\0'; pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; for (i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); --- 2290,2299 ---- break; inst->addr++; } pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; + memset(newpath, 0, sizeof(newpath)); for (i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); *************** *** 2303,2309 **** break; inst->addr++; } - newpath[PATH_MAX-1] = '\0'; return_value = rename(oldpath, newpath); --- 2302,2307 ---- *************** *** 2338,2343 **** --- 2336,2342 ---- pr = proc->intmapper[arch_to_log(proc, proc->cwp, 8)]; inst->addr = proc->phy_int_reg_file[pr]; + memset(path, 0, sizeof(path)); for (i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); *************** *** 2346,2352 **** break; inst->addr++; } - path[PATH_MAX-1] = '\0'; pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; timebuf.actime = proc->phy_int_reg_file[pr]; --- 2345,2350 ---- *************** *** 2389,2395 **** pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; ! for (int i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); --- 2387,2394 ---- pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; ! ! memset(buffer, 0, sizeof(buffer)); for (int i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); *************** *** 2399,2406 **** inst->addr++; } - buffer[PATH_MAX-1] = '\0'; - pr = proc->intmapper[arch_to_log(proc, proc->cwp, 10)]; mode = proc->phy_int_reg_file[pr]; --- 2398,2403 ---- *************** *** 2443,2449 **** pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; ! for (int i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); --- 2440,2447 ---- pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; ! ! memset(buffer, 0, sizeof(buffer)); for (int i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); *************** *** 2452,2459 **** break; inst->addr++; } - - buffer[PATH_MAX-1] = '\0'; return_value = 0; if (fd != -1) --- 2450,2455 ---- *************** *** 2614,2620 **** pr = proc->intmapper[arch_to_log(proc, proc->cwp, 8)]; inst->addr = proc->phy_int_reg_file[pr]; ! for (i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); --- 2610,2617 ---- pr = proc->intmapper[arch_to_log(proc, proc->cwp, 8)]; inst->addr = proc->phy_int_reg_file[pr]; ! ! memset(buffer0, 0, sizeof(buffer0)); for (i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); *************** *** 2624,2636 **** inst->addr++; } - buffer0[PATH_MAX-1] = '\0'; - - pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; ! for (i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); --- 2621,2631 ---- inst->addr++; } pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; ! ! memset(buffer1, 0, sizeof(buffer1)); for (i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); *************** *** 2639,2647 **** break; inst->addr++; } - - buffer1[PATH_MAX-1] = '\0'; return_value = link(buffer0, buffer1); if (return_value < 0) --- 2634,2641 ---- break; inst->addr++; } + return_value = link(buffer0, buffer1); if (return_value < 0) *************** *** 2675,2681 **** pr = proc->intmapper[arch_to_log(proc, proc->cwp, 8)]; inst->addr = proc->phy_int_reg_file[pr]; ! for (i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); --- 2669,2676 ---- pr = proc->intmapper[arch_to_log(proc, proc->cwp, 8)]; inst->addr = proc->phy_int_reg_file[pr]; ! ! memset(buffer0, 0, sizeof(buffer0)); for (i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); *************** *** 2685,2697 **** inst->addr++; } - buffer0[PATH_MAX-1] = '\0'; - - pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; ! for (i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); --- 2680,2690 ---- inst->addr++; } pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; inst->addr = proc->phy_int_reg_file[pr]; ! ! memset(buffer1, 0, sizeof(buffer1)); for (i = 0; i < PATH_MAX-1; i++) { pa = (char *)GetMap(inst, proc); *************** *** 2700,2708 **** break; inst->addr++; } - - buffer1[PATH_MAX-1] = '\0'; return_value = symlink(buffer0, buffer1); if (return_value < 0) --- 2693,2700 ---- break; inst->addr++; } + return_value = symlink(buffer0, buffer1); if (return_value < 0) *************** *** 3029,3034 **** --- 3021,3027 ---- pr = proc->intmapper[arch_to_log(proc, proc->cwp, 8)]; fd = proc->phy_int_reg_file[pr]; + memset(&sa, 0, sizeof(sa)); addrlen = sizeof(sa); signal(SIGALRM, net_alarm); *************** *** 4088,4093 **** --- 4081,4087 ---- pr = proc->intmapper[arch_to_log(proc, proc->cwp, 9)]; name = proc->phy_int_reg_file[pr]; + memset(path, 0, sizeof(path)); for (int i = 0; i < PATH_MAX; i++) { pa = (char *)GetMap(inst, proc); *************** *** 4096,4102 **** break; inst->addr++; } - path[PATH_MAX-1] = 0; return_value = (int)pathconf(path, name); --- 4090,4095 ---- *************** *** 4164,4169 **** --- 4157,4163 ---- if (return_value < 0) return_value = errno * -1; + memset(&solbuf, 0, sizeof(solbuf)); solbuf.f_bsize = endian_swap(buf.f_bsize); solbuf.f_frsize = endian_swap(buf.f_frsize); solbuf.f_blocks = endian_swap(buf.f_blocks); *************** *** 4190,4196 **** solbuf.f_fstr[fstr_len - 1] = '\0'; #endif ! for (i = 0; i < sizeof(buf); i++) { pa = (char *)GetMap(inst, proc); *pa = *(((char*)&solbuf) + i); --- 4184,4190 ---- solbuf.f_fstr[fstr_len - 1] = '\0'; #endif ! for (i = 0; i < sizeof(solbuf); i++) { pa = (char *)GetMap(inst, proc); *pa = *(((char*)&solbuf) + i); *************** *** 4442,4447 **** --- 4436,4444 ---- "Invalid argument %i in GetSegmentInfo", arg); } } + + +