@@ -838,10 +838,21 @@ void bwreply::addHeader(FILE *uplFile)
838
838
strncpy ((char *) newUplHeader.vernum , MM_VERNUM, 20 );
839
839
for (int c = 0 ; newUplHeader.vernum [c]; newUplHeader.vernum [c++] -= 10 );
840
840
841
- int tearlen = sprintf ((char *) newUplHeader.reader_name , MM_NAME
842
- " /%s" , sysname ());
843
- strcpy ((char *) newUplHeader.reader_tear , ((tearlen < 16 ) ?
844
- (char *) newUplHeader.reader_name : MM_NAME));
841
+ const char *name = sysname ();
842
+ size_t len = strlen (name);
843
+
844
+ if (len < 80 - sizeof (MM_NAME))
845
+ sprintf ((char *) newUplHeader.reader_name , MM_NAME " /%s" , name);
846
+ else
847
+ strcpy ((char *) newUplHeader.reader_name , MM_NAME);
848
+
849
+ if (len < 16 - sizeof (MM_NAME))
850
+ strcpy ((char *) newUplHeader.reader_tear ,
851
+ (char *) newUplHeader.reader_name );
852
+ else if (len < 16 - sizeof (MM_SNAME))
853
+ sprintf ((char *) newUplHeader.reader_tear , MM_SNAME " /%s" , name);
854
+ else
855
+ strcpy ((char *) newUplHeader.reader_tear , MM_NAME);
845
856
846
857
strcpy ((char *) newUplHeader.loginname , baseClass->getLoginName ());
847
858
strcpy ((char *) newUplHeader.aliasname , baseClass->getAliasName ());
0 commit comments