]> sourceware.org Git - systemtap.git/commitdiff
PR20433: simplify strcpy NULL-tolerance with inlined ?: ""
authorFrank Ch. Eigler <fche@redhat.com>
Fri, 12 Aug 2016 15:15:35 +0000 (11:15 -0400)
committerFrank Ch. Eigler <fche@redhat.com>
Fri, 12 Aug 2016 15:24:28 +0000 (11:24 -0400)
Reworking commit b91ef70c, without big need for a new _stp_strcmp
library function.

runtime/stp_string.c
runtime/stp_string.h
runtime/vma.c

index 54f056cd97c086f09ccd78453cccb58e85dd6361..0748c85b683f8d53804b930e7fe16d9b76b117ab 100644 (file)
@@ -11,7 +11,6 @@
 #define _STP_STRING_C_
 
 #include "stp_string.h"
-#include <linux/string.h>
 
 /** @file stp_string.c
  * @brief Implements string functions.
@@ -336,27 +335,5 @@ static int _stp_convert_utf32(char* buf, int size, u32 c)
        return n;
 }
 
-/**
- * Compare two strings.
- *
- * @param s1 The first string.
- * @param s2 The second string.
- *
- * @return _stp_strcmp returns an integer less than, equal to, or
- *         greater than zero if s1 is found, respectively, to be
- *         less than, to match, or be greater than s2. NULL pointers
- *         are treated as empty strings.
- */
-static inline int _stp_strcmp(const char *s1 const char *s2)
-{
-       if (s1 == NULL && s2 == NULL)
-               return 0;
-       else if (s1 == NULL)
-               return -1;
-       else if (s2 == NULL)
-               return 1;
-       return strcmp(s1, s2);
-}
-
 /** @} */
 #endif /* _STP_STRING_C_ */
index 327a9f6f991e94dd282aa7f12f2633068be55f59..af5759e802cb789da870e2d45a45285883d42f4c 100644 (file)
@@ -14,6 +14,4 @@
 
 static int _stp_text_str(char *out, const char *in, int inlen, int outlen, int quoted, int user, int buffer);
 
-static inline int _stp_strcmp(const char *s1 const char *s2);
-
 #endif /* _STP_STRING_H_ */
index 34103bcab87fba9c5f85d3b993069b29310800e3..7021725d6548217ea8845614ced1ce2cf8f3125c 100644 (file)
@@ -163,11 +163,8 @@ static int _stp_vma_mmap_cb(struct stap_task_finder_target *tgt,
        if (path != NULL && offset == 0 && (vm_flags & VM_EXEC)
            && stap_find_vma_map_info(tsk, addr, NULL, NULL, NULL, NULL) != 0) {
                for (i = 0; i < _stp_num_modules; i++) {
-                       // Note we're using _stp_strcmp() instead of
-                       // strcmp() here. _stp_strcmp() treats NULL
-                       // string pointers as empty strings. See
-                       // PR20433 for more details.
-                       if (_stp_strcmp(path, _stp_modules[i]->path) == 0)
+                       // PR20433: papering over possibility of NULL pointers
+                       if (strcmp(path ?: "", _stp_modules[i]->path ?: "") == 0)
                        {
                          unsigned long vm_start = 0;
                          unsigned long vm_end = 0;
This page took 0.032012 seconds and 5 git commands to generate.