diff options
author | mrwastl <mrwastl@users.sourceforge.net> | 2011-06-27 22:24:52 +0200 |
---|---|---|
committer | mrwastl <mrwastl@users.sourceforge.net> | 2011-06-27 22:24:52 +0200 |
commit | cba3ba244b99f54393f2faba57d2e0ec64c0f94f (patch) | |
tree | ace7465cc3b602a392f6ee78c0e8405312acbed5 /common.c | |
parent | 6da1c378c4d57b3bc5d345b5d56e515a831ddd1b (diff) | |
download | vdr-plugin-graphlcd-cba3ba244b99f54393f2faba57d2e0ec64c0f94f.tar.gz vdr-plugin-graphlcd-cba3ba244b99f54393f2faba57d2e0ec64c0f94f.tar.bz2 |
paranoia mode for strcmp
Diffstat (limited to 'common.c')
-rw-r--r-- | common.c | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -3,6 +3,7 @@ #include <glcdskin/type.h> #include <vdr/plugin.h> +#include <string.h> #if APIVERSNUM < 10503 #include <locale.h> @@ -141,3 +142,18 @@ GLCD::cType DurationType(int Index, const std::string &Format) } return false; } + +int ParanoiaStrcmp(const char *s1, const char *s2) +{ + if (! s1 || ! s2) + return -1; + + // s1 must be under 'our' control (and thus valid), s2 may be a string w/ unexpected content + size_t n = strlen(s1); + + int rv = strncmp(s1, s2, n); + if (rv == 0) + return (s2[n] == '\0') ? 0 : -1; + else + return rv; +} |