Bug 193471 - Mismatched variable type in md5(1) from getopt
Summary: Mismatched variable type in md5(1) from getopt
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: bin (show other bugs)
Version: 10.0-STABLE
Hardware: Any Any
: --- Affects Only Me
Assignee: Xin LI
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-09-08 21:51 UTC by Sprow
Modified: 2015-03-26 22:35 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sprow 2014-09-08 21:51:48 UTC
The optarg from getopt(3) is defined as a char *, but md5 variable 'checkAgainst' is an unsigned type which leads to a warning on assignment and later calls to strcmp (et al) when using a strict type check compiler.

Also, the variables may as well be static scope, as per the following patch against SVN revision 238964 of /sbin/md5/md5.c

--- md5-238964.c	2014-09-08 22:45:27.0 +0100
+++ md5-new.c	2014-09-08 22:45:27.0 +0100
@@ -42,11 +42,11 @@
 #define TEST_BLOCK_COUNT 100000
 #define MDTESTCOUNT 8
 
-int qflag;
-int rflag;
-int sflag;
-unsigned char* checkAgainst;
-int	checksFailed;
+static int qflag;
+static int rflag;
+static int sflag;
+static char* checkAgainst;
+static int checksFailed;
 
 typedef void (DIGEST_Init)(void *);
 typedef void (DIGEST_Update)(void *, const unsigned char *, size_t);
Comment 1 Xin LI freebsd_committer freebsd_triage 2015-03-26 22:34:58 UTC
Committed, thanks!
Comment 2 commit-hook freebsd_committer freebsd_triage 2015-03-26 22:35:25 UTC
A commit references this bug:

Author: delphij
Date: Thu Mar 26 22:34:28 UTC 2015
New revision: 280716
URL: https://svnweb.freebsd.org/changeset/base/280716

Log:
   - Correct type for checkAgainst.
   - Staticify flags that are not used outside the file scope.

  PR:		bin/193471
  Submitted by:	Robert Sprowson <webpages sprow.co.uk>
  MFC after:	2 weeks

Changes:
  head/sbin/md5/md5.c