]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
don't play with pointers
authorStephan Kulow <coolo@suse.de>
Sun, 28 Oct 2007 19:05:49 +0000 (19:05 +0000)
committerStephan Kulow <coolo@suse.de>
Sun, 28 Oct 2007 19:05:49 +0000 (19:05 +0000)
tools/repo_helix.c

index 238f9993d0468a0974a33c1a6be642a11bcf4fa1..47975e1ad6005b2ce40c5b0d55879452d8f57db9 100644 (file)
@@ -637,9 +637,15 @@ endElement(void *userData, const char *name)
          /* this is either a kernel package or a kmp */
          if (s->provides)
            {
+             int prov;
              npr = 0;
-             for (pidp = pd->repo->idarraydata + s->provides; (pid = *pidp++) != 0; )
+             for ( prov = s->provides; ( pidp = pd->repo->idarraydata + prov) != 0; ++prov)
                {
+                 if (!*pidp)
+                   break;
+
+                 pid = *pidp;
+
                  const char *depname = 0;
                  Reldep *prd = 0;
 
@@ -674,9 +680,16 @@ endElement(void *userData, const char *name)
 
          if (s->requires)
            {
+             int reqs;
              npr = 0;
-             for (pidp = pd->repo->idarraydata + s->requires; (pid = *pidp++) != 0; )
+
+             for ( reqs = s->requires; ( pidp = pd->repo->idarraydata + reqs) != 0; ++reqs)
                {
+                 if (!*pidp)
+                   break;
+
+                 pid = *pidp;
+
                  const char *depname = 0;
                  Reldep *prd = 0;