Christian Kruse: gzip_cnc

Beitrag lesen

Moin Christoph,

na, *das* nenne ich doch mal eine 'konstruktive Kritik' -- danke!

Zeile 0: bitte noch ein #include <unistd.h> einbauen (für getpid(),
unlink() und close())

Hm, bisher dachte ich, das waere in der stdlib.h definiert -- danke fuer den
Hinweis.

(Zeile 44 ff: der alte Macteiler ist IMHO ':', wenn's gebraucht werden
sollte)

Ich habe keinen Mac zum testen. Da muesste sich ein Mac-Freak hinsetzen und
das patchen.

Zeilen 86, 89 und Funktionen: Bitte alle globalen Variablen vermeiden. Auch
hier.Auch die Funktionen selber!

Jaja, ich weiss. Ich hatte eh vor, fuer V. 1.0 das Log-Konzept komplett zu
ueberarbeiten.

Zeile 102: Der Name 'log(const char *format, ...)' der Funktion beißt sich
mit log(double) aus der math.h. Würde ich zu vermeiden suchen.

Danke.

Zeile 204: mkdir() kann auch in die Hose gehen, fehlt Überprüfung.

Stimmt. Daraus wollte ich eh noch ein

if(ret && errno != EEXIST) {
       perror("mkdir");
       return -1;
     }

machen, habe es aber vergessen.

Zeile 234: malloc() ohne Überprüfung? Ganz böse Falle, aber wirklich _ganz_
böse!

Find ich gar nicht. Wann sollte *heutzutage* noch ein malloc() fehlschlagen,
gerade wenn es nur um ein paar Bytes geht?

und weder strcpy() noch strcat() sind eigentlich zu empfehlen.

Warum?

Zeile 253: Überprüfung von fclose() fehlt.

Danke, guter Punkt! :-)

Zeile 271: Memory Leak! gz ist noch nicht freigegeben vor dem return!

Bitte wie? 'gz' sollte doch fclose() freigeben, ich habe den Speicher
schliesslich nicht angefordert. Und ich habe noch keinen Sourcecode gesehen,
wo ein FILE * freigegeben wird.

Zeile 343: sowas geht nicht gut. Hau lieber noch ein paar Klammern drumherum.

if ((gzip = strstr(gzip, "gzip"))) {

Noajoa, es waere gut gegangen. Aber -pedantic will halt noch eine Klammer
haben...

Zeile 348: *gzip != 0 passt nicht. Die Stelle auf die der Pointer zeigt
ist Type char, 0 ist Type int.

Zum Glueck weiss der Compiler das auch und macht daraus einen char :-)

Zeile 390, 403: getenv("PATH_INFO") kann NULL zurückgeben, das kollidiert
dann mit Deiner log() Funktion.

Danke, guter Hinweis.

Zeile 443, 450, 458, 525, 532, 540: tptr kann NULL sein, verträgt sich mit
strftime() nicht.

Hm. Warum sollte tptr null sein koennen? Bzw. in welchem Fall? Aber ich habe
es beruecksichtigt jetzt, danke.

Zeile 599: close() will als erstes Argument ein int, bekommt aber eine FILE*
Beschwert sich übrigens auch der GCC drüber!
Aber hast Du wahrscheinlich nicht verstanden, oder?

Doch, natuerlich ;-) Ich habe nur nicht mit -Wall compiliert, zum Schluss. Das
mit der 'filename.conf' war mehr oder weniger ein Release-Quickhack, damit
ich bei den Binaries nicht den Cache-Pfad fest einkompilieren muss.

Gut, zugegeben ist ein wenig kryptisch die Meldung ;-)

Ja, aber nach ein paar Programmen lernt man die Meldung einschaetzen ;-)

Wolltest Du evt fclose()? Hast zumindest fopen() genommen.

Ja, wollte ich.

Typo?

Genau :-)

Zeile 632: may_gzip() ist weder bool noch int.

Doch, may_gzip() ist

int may_gzip(void)

Nach Reparatur von 343 und 599 hat  gcc -Wall -pedantic -ansi gzip\_cncc.c -lz gar keine Beschwerden mehr.

Dito.
Ich kannte -pedantic und -ansi vorher gar nicht. -Wall sind anscheinend doch
nicht alle Warnungen?

Gruesse,
 CK

0 158

gzip_cnc

Michael Schröpl
  • zur info
  1. 0
    Stefan Einspender
    1. 0
      Michael Schröpl
      1. 0
        Stefan Einspender
        1. 0
          Orlando
    2. 0
      Zapp
      1. 0
        Stefan Einspender
        1. 0
          Zapp
          1. 0
            Stefan Einspender
            1. 0
              Orlando
            2. 0
              Zapp
            3. 0
              Zapp
  2. 0
    Orlando
    1. 0
      Michael Schröpl
      1. 0
        Stefan Einspender
      2. 0
        Orlando
        1. 0
          Michael Schröpl
      3. 0
        Michael Schröpl
        1. 0
          Orlando
          1. 0
            Michael Schröpl
            1. 0
              Orlando
              1. 0
                Orlando
            2. 0
              Orlando
              1. 0
                Michael Schröpl
                1. 0
                  Stefan Einspender
                  1. 0
                    Michael Schröpl
                    1. 0
                      Stefan Einspender
                      1. 0
                        Michael Schröpl
                        1. 0
                          Michael Schröpl
                          1. 0
                            Stefan Einspender
                            1. 0
                              Zapp
                              1. 0
                                Stefan Einspender
                                1. 0
                                  Zapp
                    2. 0
                      Orlando
                      1. 0
                        Michael Schröpl
                        1. 0
                          Orlando
                          1. 0
                            Michael Schröpl
                            1. 0
                              Orlando
                              1. 0
                                Michael Schröpl
                                1. 0
                                  Orlando
              2. 0
                Michael Schröpl
                1. 0
                  Christian Kruse
                2. 0
                  Stefan Einspender
                  1. 0
                    Michael Schröpl
                    1. 0
                      Stefan Einspender
                      1. 0
                        Michael Schröpl
                        1. 0
                          Orlando
                          1. 0
                            Michael Schröpl
                            1. 0
                              Stefan Einspender
                              1. 0
                                Michael Schröpl
                        2. 0
                          Stefan Einspender
                          1. 0
                            Michael Schröpl
                            1. 0
                              Stefan Einspender
                              1. 0
                                Michael Schröpl
                                1. 0
                                  Stefan Einspender
                                  1. 0
                                    Michael Schröpl
    2. 0

      gzip_cnc / N4.x-Probleme

      Orlando
      • css
      1. 0
        Stefan Einspender
        1. 0
          Orlando
        2. 0
          Michael Schröpl
      2. 0
        Michael Schröpl
        1. 0
          Orlando
  3. 0
    Christian Kruse
  4. 0
    Christoph Zurnieden
    1. 0
      Christian Kruse
      1. 0
        Christoph Zurnieden
        1. 0
          Christian Kruse
          1. 0
            Christoph Zurnieden
            1. 0
              Christian Kruse
              1. 0
                Michael Schröpl
                1. 0
                  Christoph Zurnieden
                  1. 0
                    Michael Schröpl
                    1. 0
                      Christoph Zurnieden
                2. 0
                  Christian Kruse
                  1. 0
                    Michael Schröpl
              2. 0
                Christoph Zurnieden
                1. 0
                  Christian Kruse
                  1. 0
                    Christoph Zurnieden
                    1. 0
                      Christian Kruse
                      1. 0
                        Michael Schröpl
                        1. 0
                          Christoph Zurnieden
                          1. 0
                            Michael Schröpl
                          2. 0
                            Michael Schröpl
                            1. 0
                              Christoph Zurnieden
                              1. 0
                                Michael Schröpl
                            2. 0
                              Calocybe
                      2. 0
                        Christoph Zurnieden
                        1. 0
                          Calocybe
                          1. 0
                            Christoph Zurnieden
                            1. 0
                              Michael Schröpl
                              1. 0
                                Christoph Zurnieden
                                1. 0
                                  Michael Schröpl
                                  1. 0
                                    Christoph Zurnieden
                                    1. 0
                                      Michael Schröpl
                                      1. 0
                                        Christian Kruse
                                        1. 0
                                          Christoph Zurnieden
                                          1. 0
                                            Christian Kruse
                                            1. 0
                                              Christoph Zurnieden
                                              1. 0
                                                Christian Kruse
                                                1. 0
                                                  Christoph Zurnieden
                                                  1. 0
                                                    Christian Kruse
                                                    1. 0
                                                      Christoph Zurnieden
                                                      1. 0
                                                        Christian Kruse
                                                        1. 0
                                                          Christoph Zurnieden
                                                          1. 0
                                                            Christian Kruse
                                                            1. 0
                                                              Christoph Zurnieden
                                                              1. 0
                                                                Christian Kruse
                                                                1. 0
                                                                  Christoph Zurnieden
                                                                  1. 0
                                                                    Michael Schröpl
                                                                    1. 0
                                                                      Christoph Zurnieden
                                                                      1. 0
                                                                        Christian Kruse
                                                                        1. 0
                                                                          Christoph Zurnieden
                                                                          1. 0
                                                                            Chritsian Kruse
                                                                            1. 0
                                                                              Christoph Zurnieden
                                                      2. 0

                                                        gzip_cnc und Lizenzfragen

                                                        Michael Schröpl
                                                        • recht
                                                        1. 0
                                                          Christoph Zurnieden
                                                          1. 0
                                                            Michael Schröpl
                                                            1. 0
                                                              Christoph Zurnieden
                                                              1. 0
                                                                Michael Schröpl
                                                                1. 0
                                                                  Christoph Zurnieden
                                                                  1. 0
                                                                    Michael Schröpl
                                                                    1. 0
                                                                      Christoph Zurnieden
                                                                      1. 0
                                                                        Michael Schröpl
                                                                        1. 0
                                                                          Christoph Zurnieden
                                                                          1. 0

                                                                            gzip_cnc 1.07 released

                                                                            Michael Schröpl
                                                                            • software
                                                                            1. 0
                                                                              Christoph Zurnieden
                                                                              1. 0
                                                                                Michael Schröpl
                                                                                1. 0
                                                                                  Christoph Zurnieden
                                                                                  1. 0

                                                                                    gzip_cnc 1.08 released

                                                                                    Michael Schröpl
                                                                                    1. 0
                                                                                      Christoph Zurnieden
                                                                                      1. 0
                                                                                        Christian Kruse
                                                                                        1. 0
                                                                                          Christoph Zurnieden
                                                                                          1. 0
                                                                                            Christian Kruse
                                                                                      2. 0
                                                                                        Michael Schröpl
                                                                                        1. 0

                                                                                          gzip_cnc 1.10 - Vorschlag

                                                                                          Michael Schröpl
                                                                                          1. 0
                                                                                            Christian Kruse
                                                                                          2. 0
                                                                                            Christoph Zurnieden
                                                                                            1. 0
                                                                                              Michael Schröpl
                                                                                              1. 0
                                                                                                Christoph Zurnieden
                                                                                                1. 0
                                                                                                  Michael Schröpl
                                                                                                  1. 0
                                                                                                    Christoph Zurnieden
                                                                                        2. 0
                                                                                          Christoph Zurnieden
                                                                                          1. 0
                                                                                            Michael Schröpl
                                                                                            1. 0
                                                                                              Christoph Zurnieden
                                                                                              1. 0
                                                                                                Michael Schröpl
                                                                                                1. 0
                                                                                                  Christoph Zurnieden
                                      2. 0
                                        Christoph Zurnieden
                                        1. 0
                                          Michael Schröpl
  5. 0
    Thomas J.S.
    1. 0
      Michael Schröpl
      1. 0
        Thomas J.S.
        1. 0
          Michael Schröpl
          1. 0
            Thomas J.S.
            1. 0
              Michael Schröpl
              1. 0
                Thomas J.S.
                1. 0
                  Michael Schröpl
                  1. 0
                    Thomas J.S.
                    1. 0

                      gzip_cnc V1.06 released

                      Michael Schröpl