aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2022-10-28 04:00:00 +0200
committerIgor Pashev <pashev.igor@gmail.com>2022-10-29 11:57:20 +0200
commit8df721df25864f89772c58a4486314855bf1a37e (patch)
tree7c89253922a8f09b964876b438056e2655cc9062 /src/lib
parent467b6fb9eeb12d064c1f6fa4d7f87638e49685ca (diff)
downloadopen-axiom-8df721df25864f89772c58a4486314855bf1a37e.tar.gz
Fix some compiler warnings & buffer overflows
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/cfuns-c.cxx5
-rw-r--r--src/lib/edin.c12
-rw-r--r--src/lib/prt.c8
-rw-r--r--src/lib/sockio-c.cxx2
-rw-r--r--src/lib/wct.c2
5 files changed, 18 insertions, 11 deletions
diff --git a/src/lib/cfuns-c.cxx b/src/lib/cfuns-c.cxx
index 11c28691..5dbcd6bc 100644
--- a/src/lib/cfuns-c.cxx
+++ b/src/lib/cfuns-c.cxx
@@ -79,11 +79,6 @@
#endif
namespace OpenAxiom {
- // Make a copy of string data on free store.
- static char*
- copy_c_str(const std::string& s) {
- return strdup(s.c_str());
- }
OPENAXIOM_C_EXPORT int
addtopath(char *dir)
diff --git a/src/lib/edin.c b/src/lib/edin.c
index f85a632a..568bb77a 100644
--- a/src/lib/edin.c
+++ b/src/lib/edin.c
@@ -792,6 +792,18 @@ forwardflag_cpy(int *buff1,int * buff2,int num)
buff1[count] = buff2[count];
}
+void
+strnmov(char *dest, const char *src, size_t n)
+{
+ while (n-- && (*dest++ = *src++));
+}
+
+void
+strmov(char *dest, const char *src)
+{
+ while ((*dest++ = *src++));
+}
+
void
flagcpy(int *s,int *t)
{
diff --git a/src/lib/prt.c b/src/lib/prt.c
index f111e2d9..ee5b3af0 100644
--- a/src/lib/prt.c
+++ b/src/lib/prt.c
@@ -152,7 +152,7 @@ delete_current_char(void)
if (buff_flag[curr_pntr] == 1 || buff_flag[curr_pntr] == 0) {
myputchar(_BLANK);
myputchar(_BKSPC);
- strcpy(&buff[curr_pntr],
+ strmov(&buff[curr_pntr],
&buff[curr_pntr + 1]);
flagcpy(&buff_flag[curr_pntr],
&buff_flag[curr_pntr + 1]);
@@ -165,7 +165,7 @@ delete_current_char(void)
myputchar(_BLANK);
myputchar(_BKSPC);
myputchar(_BKSPC);
- strcpy(&buff[curr_pntr],
+ strmov(&buff[curr_pntr],
&buff[curr_pntr + 2]);
flagcpy(&buff_flag[curr_pntr],
&buff_flag[curr_pntr + 2]);
@@ -380,7 +380,7 @@ back_over_current_char(void)
myputchar(_BLANK);
myputchar(_BKSPC);
myputchar(_BKSPC);
- strcpy(&buff[curr_pntr - 2],
+ strmov(&buff[curr_pntr - 2],
&buff[curr_pntr]);
flagcpy(&buff_flag[curr_pntr - 2],
&buff_flag[curr_pntr]);
@@ -392,7 +392,7 @@ back_over_current_char(void)
myputchar(_BKSPC);
myputchar(_BLANK);
myputchar(_BKSPC);
- strcpy(&buff[curr_pntr - 1],
+ strmov(&buff[curr_pntr - 1],
&buff[curr_pntr]);
flagcpy(&buff_flag[curr_pntr - 1],
&buff_flag[curr_pntr]);
diff --git a/src/lib/sockio-c.cxx b/src/lib/sockio-c.cxx
index 24b8f475..dda95ec3 100644
--- a/src/lib/sockio-c.cxx
+++ b/src/lib/sockio-c.cxx
@@ -1123,7 +1123,7 @@ init_purpose_table()
OPENAXIOM_C_EXPORT int
make_server_number()
{
- spad_server_number = oa_getpid();
+ spad_server_number = oa_getpid() % 1024;
return spad_server_number;
}
diff --git a/src/lib/wct.c b/src/lib/wct.c
index 35cc01e9..44510558 100644
--- a/src/lib/wct.c
+++ b/src/lib/wct.c
@@ -572,7 +572,7 @@ rescan_wct(void)
else if (new_len < old_len) {
/* this time I simply copy backwards and do the substituting */
diff = old_len - new_len;
- strncpy(&buff[curr_pntr - diff],
+ strnmov(&buff[curr_pntr - diff],
&buff[curr_pntr],
buff_pntr - curr_pntr);
flagncpy(&buff_flag[curr_pntr - diff],